예제 #1
0
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)
예제 #2
0
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):