Reduce _validate complexity (#20274)
This commit is contained in:
		
							parent
							
								
									c485d1cf26
								
							
						
					
					
						commit
						f186abdf29
					
				
					 1 changed files with 17 additions and 11 deletions
				
			
		| 
						 | 
				
			
			@ -50,18 +50,9 @@ def _valid_community_layout(layout):
 | 
			
		|||
    return (Path('layouts/default') / layout).exists()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def _validate(keyboard, info_data):
 | 
			
		||||
    """Perform various validation on the provided info.json data
 | 
			
		||||
def _additional_validation(keyboard, info_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', {})
 | 
			
		||||
    layout_aliases = info_data.get('layout_aliases', {})
 | 
			
		||||
    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')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
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):
 | 
			
		||||
    """Generate the info.json data for a specific keyboard.
 | 
			
		||||
    """
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue