~ruther/qmk_firmware

fb056c543765b1c8ed7dae031a36ed2d04b1c718 — Joel Challis 2 years ago 595f7db
Update json2c to use dump_lines (#21013)

2 files changed, 5 insertions(+), 18 deletions(-)

M lib/python/qmk/cli/json2c.py
M lib/python/qmk/tests/test_cli_commands.py
M lib/python/qmk/cli/json2c.py => lib/python/qmk/cli/json2c.py +3 -16
@@ 5,7 5,7 @@ from milc import cli

import qmk.keymap
import qmk.path
from qmk.commands import parse_configurator_json
from qmk.commands import dump_lines, parse_configurator_json


@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to')


@@ 21,21 21,8 @@ def json2c(cli):
    # Parse the configurator from json file (or stdin)
    user_keymap = parse_configurator_json(cli.args.filename)

    # Environment processing
    if cli.args.output and cli.args.output.name == '-':
        cli.args.output = None

    # Generate the keymap
    keymap_c = qmk.keymap.generate_c(user_keymap)

    if cli.args.output:
        cli.args.output.parent.mkdir(parents=True, exist_ok=True)
        if cli.args.output.exists():
            cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
        cli.args.output.write_text(keymap_c)

        if not cli.args.quiet:
            cli.log.info('Wrote keymap to %s.', cli.args.output)

    else:
        print(keymap_c)
    # Show the results
    dump_lines(cli.args.output, keymap_c.split('\n'), cli.args.quiet)

M lib/python/qmk/tests/test_cli_commands.py => lib/python/qmk/tests/test_cli_commands.py +2 -2
@@ 144,7 144,7 @@ def test_list_keymaps_no_keyboard_found():
def test_json2c():
    result = check_subcommand('json2c', 'keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json')
    check_returncode(result)
    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n'
    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n\n'


def test_json2c_macros():


@@ 158,7 158,7 @@ def test_json2c_macros():
def test_json2c_stdin():
    result = check_subcommand_stdin('keyboards/handwired/pytest/has_template/keymaps/default_json/keymap.json', 'json2c', '-')
    check_returncode(result)
    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n'
    assert result.stdout == '#include QMK_KEYBOARD_H\nconst uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {\t[0] = LAYOUT_ortho_1x1(KC_A)};\n\n\n'


def test_json2c_wrong_json():

Do not follow this link