Handle cli._subcommand.__name__ deprecation warning (#24533)

This commit is contained in:
Joel Challis 2024-10-30 05:16:59 +00:00 committed by GitHub
parent 92afc8198a
commit e6daffce46
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -9,6 +9,15 @@ from qmk.keyboard import find_keyboard_from_dir
from qmk.keymap import find_keymap_from_dir from qmk.keymap import find_keymap_from_dir
def _get_subcommand_name():
"""Handle missing cli.subcommand_name on older versions of milc
"""
try:
return cli.subcommand_name
except AttributeError:
return cli._subcommand.__name__
def automagic_keyboard(func): def automagic_keyboard(func):
"""Sets `cli.config.<subcommand>.keyboard` based on environment. """Sets `cli.config.<subcommand>.keyboard` based on environment.
@ -16,13 +25,15 @@ def automagic_keyboard(func):
""" """
@functools.wraps(func) @functools.wraps(func)
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
cmd = _get_subcommand_name()
# Ensure that `--keyboard` was not passed and CWD is under `qmk_firmware/keyboards` # Ensure that `--keyboard` was not passed and CWD is under `qmk_firmware/keyboards`
if cli.config_source[cli._subcommand.__name__]['keyboard'] != 'argument': if cli.config_source[cmd]['keyboard'] != 'argument':
keyboard = find_keyboard_from_dir() keyboard = find_keyboard_from_dir()
if keyboard: if keyboard:
cli.config[cli._subcommand.__name__]['keyboard'] = keyboard cli.config[cmd]['keyboard'] = keyboard
cli.config_source[cli._subcommand.__name__]['keyboard'] = 'keyboard_directory' cli.config_source[cmd]['keyboard'] = 'keyboard_directory'
return func(*args, **kwargs) return func(*args, **kwargs)
@ -36,13 +47,15 @@ def automagic_keymap(func):
""" """
@functools.wraps(func) @functools.wraps(func)
def wrapper(*args, **kwargs): def wrapper(*args, **kwargs):
cmd = _get_subcommand_name()
# Ensure that `--keymap` was not passed and that we're under `qmk_firmware` # Ensure that `--keymap` was not passed and that we're under `qmk_firmware`
if cli.config_source[cli._subcommand.__name__]['keymap'] != 'argument': if cli.config_source[cmd]['keymap'] != 'argument':
keymap_name, keymap_type = find_keymap_from_dir() keymap_name, keymap_type = find_keymap_from_dir()
if keymap_name: if keymap_name:
cli.config[cli._subcommand.__name__]['keymap'] = keymap_name cli.config[cmd]['keymap'] = keymap_name
cli.config_source[cli._subcommand.__name__]['keymap'] = keymap_type cli.config_source[cmd]['keymap'] = keymap_type
return func(*args, **kwargs) return func(*args, **kwargs)