MILC: Use dashes instead of underscores for subcommands

The subcommand functions' name follows the Python convention of using
snake case, but looks odd on the command line.
Fix it by converting underscores to dashes, eg.: list_keyboards ->
list-keyboards.
This commit is contained in:
Erovia
2019-10-13 20:23:11 +02:00
committed by Drashna Jael're
parent 703f905a72
commit 69542eaa4b
2 changed files with 5 additions and 4 deletions

View File

@@ -429,11 +429,12 @@ class MILC(object):
self.arg_only.append(arg_name) self.arg_only.append(arg_name)
del kwargs['arg_only'] del kwargs['arg_only']
name = handler.__name__.replace("_", "-")
if handler is self._entrypoint: if handler is self._entrypoint:
self.add_argument(*args, **kwargs) self.add_argument(*args, **kwargs)
elif handler.__name__ in self.subcommands: elif name in self.subcommands:
self.subcommands[handler.__name__].add_argument(*args, **kwargs) self.subcommands[name].add_argument(*args, **kwargs)
else: else:
raise RuntimeError('Decorated function is not entrypoint or subcommand!') raise RuntimeError('Decorated function is not entrypoint or subcommand!')
@@ -599,7 +600,7 @@ class MILC(object):
self.add_subparsers() self.add_subparsers()
if not name: if not name:
name = handler.__name__ name = handler.__name__.replace("_", "-")
self.acquire_lock() self.acquire_lock()
kwargs['help'] = description kwargs['help'] = description

View File

@@ -40,7 +40,7 @@ def test_pyformat():
def test_list_keyboards(): def test_list_keyboards():
result = check_subcommand('list_keyboards') result = check_subcommand('list-keyboards')
assert result.returncode == 0 assert result.returncode == 0
# check to see if a known keyboard is returned # check to see if a known keyboard is returned
# this will fail if handwired/onekey/pytest is removed # this will fail if handwired/onekey/pytest is removed