aboutsummaryrefslogtreecommitdiff
path: root/lib/python/milc.py
diff options
context:
space:
mode:
authorErovia <Erovia@users.noreply.github.com>2019-11-21 21:52:00 +0100
committerskullydazed <skullydazed@users.noreply.github.com>2019-11-21 12:52:00 -0800
commit7e7eb69edffca39b51e8fdcd5eaa76262e16eaf4 (patch)
tree68413d22bb38d8ed2534eb1f705d6e19ebab68e6 /lib/python/milc.py
parentf0790a722d5a586e3621487b554fd217839c24c0 (diff)
downloadqmk_firmware-7e7eb69edffca39b51e8fdcd5eaa76262e16eaf4.tar.gz
qmk_firmware-7e7eb69edffca39b51e8fdcd5eaa76262e16eaf4.zip
MILC: Add support for hidden subcommands (#7034)
* MILC: Add support for hidden subcommands Subcommands with 'hidden=True' will not show up in the help output, but will work as any other subcommands. * Hide those hidden submodules, for real now * Rebase on latest MILC
Diffstat (limited to 'lib/python/milc.py')
-rw-r--r--lib/python/milc.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/python/milc.py b/lib/python/milc.py
index e8599eff3..4392c8376 100644
--- a/lib/python/milc.py
+++ b/lib/python/milc.py
@@ -595,23 +595,25 @@ class MILC(object):
595 595
596 return entrypoint_func 596 return entrypoint_func
597 597
598 def add_subcommand(self, handler, description, name=None, **kwargs): 598 def add_subcommand(self, handler, description, name=None, hidden=False, **kwargs):
599 """Register a subcommand. 599 """Register a subcommand.
600 600
601 If name is not provided we use `handler.__name__`. 601 If name is not provided we use `handler.__name__`.
602 """ 602 """
603
603 if self._inside_context_manager: 604 if self._inside_context_manager:
604 raise RuntimeError('You must run this before the with statement!') 605 raise RuntimeError('You must run this before the with statement!')
605 606
606 if self._subparsers is None: 607 if self._subparsers is None:
607 self.add_subparsers() 608 self.add_subparsers(metavar="")
608 609
609 if not name: 610 if not name:
610 name = handler.__name__.replace("_", "-") 611 name = handler.__name__.replace("_", "-")
611 612
612 self.acquire_lock() 613 self.acquire_lock()
613 614 if not hidden:
614 kwargs['help'] = description 615 self._subparsers.metavar = "{%s,%s}" % (self._subparsers.metavar[1:-1], name) if self._subparsers.metavar else "{%s%s}" % (self._subparsers.metavar[1:-1], name)
616 kwargs['help'] = description
615 self.subcommands[name] = SubparserWrapper(self, name, self._subparsers.add_parser(name, **kwargs)) 617 self.subcommands[name] = SubparserWrapper(self, name, self._subparsers.add_parser(name, **kwargs))
616 self.subcommands[name].set_defaults(entrypoint=handler) 618 self.subcommands[name].set_defaults(entrypoint=handler)
617 619
@@ -619,11 +621,11 @@ class MILC(object):
619 621
620 return handler 622 return handler
621 623
622 def subcommand(self, description, **kwargs): 624 def subcommand(self, description, hidden=False, **kwargs):
623 """Decorator to register a subcommand. 625 """Decorator to register a subcommand.
624 """ 626 """
625 def subcommand_function(handler): 627 def subcommand_function(handler):
626 return self.add_subcommand(handler, description, **kwargs) 628 return self.add_subcommand(handler, description, hidden=hidden, **kwargs)
627 629
628 return subcommand_function 630 return subcommand_function
629 631