Reduce _validate complexity (#20274)

This commit is contained in:
Joel Challis 2023-03-28 02:53:28 +01:00 committed by GitHub
parent c485d1cf26
commit f186abdf29
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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.
""" """