def strip_info_json(kb_info_json): """Remove the API-only properties from the info.json. """ pruning_draft_7_validator = pruning_validator(Draft7Validator) schema = load_jsonschema('keyboard') validator = pruning_draft_7_validator(schema).validate return validator(kb_info_json)
from milc import cli from milc.questions import choice, question from qmk.git import git_get_username from qmk.json_schema import load_jsonschema from qmk.path import keyboard from qmk.json_encoders import InfoJSONEncoder from qmk.json_schema import deep_update, json_load from qmk.constants import MCU2BOOTLOADER COMMUNITY = Path('layouts/default/') TEMPLATE = Path('data/templates/keyboard/') # defaults schema = dotty(load_jsonschema('keyboard')) mcu_types = sorted(schema["properties.processor.enum"], key=str.casefold) dev_boards = sorted(schema["properties.development_board.enum"], key=str.casefold) available_layouts = sorted([x.name for x in COMMUNITY.iterdir() if x.is_dir()]) def mcu_type(mcu): """Callable for argparse validation. """ if mcu not in (dev_boards + mcu_types): raise ValueError return mcu def layout_type(layout):