mirror of
https://github.com/firewalkwithm3/qmk_firmware.git
synced 2024-11-23 03:50:28 +08:00
Reduce _validate complexity (#20274)
This commit is contained in:
parent
c485d1cf26
commit
f186abdf29
|
@ -50,18 +50,9 @@ def _valid_community_layout(layout):
|
||||||
return (Path('layouts/default') / layout).exists()
|
return (Path('layouts/default') / layout).exists()
|
||||||
|
|
||||||
|
|
||||||
def _validate(keyboard, info_data):
|
def _additional_validation(keyboard, info_data):
|
||||||
"""Perform various validation on the provided info.json data
|
"""Non schema checks
|
||||||
"""
|
"""
|
||||||
# First validate against the jsonschema
|
|
||||||
try:
|
|
||||||
validate(info_data, 'qmk.api.keyboard.v1')
|
|
||||||
|
|
||||||
except jsonschema.ValidationError as e:
|
|
||||||
json_path = '.'.join([str(p) for p in e.absolute_path])
|
|
||||||
cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message)
|
|
||||||
exit(1)
|
|
||||||
|
|
||||||
layouts = info_data.get('layouts', {})
|
layouts = info_data.get('layouts', {})
|
||||||
layout_aliases = info_data.get('layout_aliases', {})
|
layout_aliases = info_data.get('layout_aliases', {})
|
||||||
community_layouts = info_data.get('community_layouts', [])
|
community_layouts = info_data.get('community_layouts', [])
|
||||||
|
@ -110,6 +101,21 @@ def _validate(keyboard, info_data):
|
||||||
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
|
_log_error(info_data, f'Keycode {decl["key"]} has no short form alias')
|
||||||
|
|
||||||
|
|
||||||
|
def _validate(keyboard, info_data):
|
||||||
|
"""Perform various validation on the provided info.json data
|
||||||
|
"""
|
||||||
|
# First validate against the jsonschema
|
||||||
|
try:
|
||||||
|
validate(info_data, 'qmk.api.keyboard.v1')
|
||||||
|
|
||||||
|
_additional_validation(keyboard, info_data)
|
||||||
|
|
||||||
|
except jsonschema.ValidationError as e:
|
||||||
|
json_path = '.'.join([str(p) for p in e.absolute_path])
|
||||||
|
cli.log.error('Invalid API data: %s: %s: %s', keyboard, json_path, e.message)
|
||||||
|
exit(1)
|
||||||
|
|
||||||
|
|
||||||
def info_json(keyboard):
|
def info_json(keyboard):
|
||||||
"""Generate the info.json data for a specific keyboard.
|
"""Generate the info.json data for a specific keyboard.
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in a new issue