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 Florian Didron
parent 415ab3c96c
commit e3e2489f86
2 changed files with 5 additions and 4 deletions

View File

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

View File

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