Remove DEFAULT_FOLDER handling (#23281)

This commit is contained in:
Joel Challis 2025-06-09 05:08:56 +01:00 committed by GitHub
parent 94f1aade5c
commit 0326355edc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 20 additions and 58 deletions

View file

@ -99,8 +99,6 @@ def find_keyboard_from_dir():
keymap_index = len(current_path.parts) - current_path.parts.index('keymaps') - 1
current_path = current_path.parents[keymap_index]
current_path = resolve_keyboard(current_path)
if qmk.path.is_keyboard(current_path):
return str(current_path)
@ -121,7 +119,7 @@ def find_readme(keyboard):
def keyboard_folder(keyboard):
"""Returns the actual keyboard folder.
This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
This checks aliases to resolve the actual path for a keyboard.
"""
aliases = keyboard_alias_definitions()
@ -131,8 +129,6 @@ def keyboard_folder(keyboard):
if keyboard == last_keyboard:
break
keyboard = resolve_keyboard(keyboard)
if not qmk.path.is_keyboard(keyboard):
raise ValueError(f'Invalid keyboard: {keyboard}')
@ -158,7 +154,7 @@ def keyboard_aliases(keyboard):
def keyboard_folder_or_all(keyboard):
"""Returns the actual keyboard folder.
This checks aliases and DEFAULT_FOLDER to resolve the actual path for a keyboard.
This checks aliases to resolve the actual path for a keyboard.
If the supplied argument is "all", it returns an AllKeyboards object.
"""
if keyboard == 'all':
@ -179,32 +175,18 @@ def keyboard_completer(prefix, action, parser, parsed_args):
return list_keyboards()
def list_keyboards(resolve_defaults=True):
"""Returns a list of all keyboards - optionally processing any DEFAULT_FOLDER.
def list_keyboards():
"""Returns a list of all keyboards
"""
# We avoid pathlib here because this is performance critical code.
paths = []
for marker in ['rules.mk', 'keyboard.json']:
kb_wildcard = os.path.join(base_path, "**", marker)
paths += [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
kb_wildcard = os.path.join(base_path, "**", 'keyboard.json')
paths = [path for path in glob(kb_wildcard, recursive=True) if os.path.sep + 'keymaps' + os.path.sep not in path]
found = map(_find_name, paths)
if resolve_defaults:
found = map(resolve_keyboard, found)
return sorted(set(found))
@lru_cache(maxsize=None)
def resolve_keyboard(keyboard):
cur_dir = Path('keyboards')
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
while 'DEFAULT_FOLDER' in rules and keyboard != rules['DEFAULT_FOLDER']:
keyboard = rules['DEFAULT_FOLDER']
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
return keyboard
def config_h(keyboard):
"""Parses all the config.h files for a keyboard.
@ -216,7 +198,7 @@ def config_h(keyboard):
"""
config = {}
cur_dir = Path('keyboards')
keyboard = Path(resolve_keyboard(keyboard))
keyboard = Path(keyboard)
for dir in keyboard.parts:
cur_dir = cur_dir / dir
@ -235,7 +217,7 @@ def rules_mk(keyboard):
a dictionary representing the content of the entire rules.mk tree for a keyboard
"""
cur_dir = Path('keyboards')
keyboard = Path(resolve_keyboard(keyboard))
keyboard = Path(keyboard)
rules = parse_rules_mk_file(cur_dir / keyboard / 'rules.mk')
for i, dir in enumerate(keyboard.parts):