From 66f0aa8d5fcb658db8a4419b7cb5faa320ec9ee1 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 14 Sep 2014 23:25:40 +0200 Subject: [PATCH] cmdutils: Bind keyword-only arguments as flags. --- qutebrowser/commands/cmdutils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/qutebrowser/commands/cmdutils.py b/qutebrowser/commands/cmdutils.py index 5f95e2114..014b5303d 100644 --- a/qutebrowser/commands/cmdutils.py +++ b/qutebrowser/commands/cmdutils.py @@ -271,7 +271,8 @@ class register: # pylint: disable=invalid-name args = [] name = annotation_info.name or param.name shortname = annotation_info.flag or param.name[0] - if self._get_type(param, annotation_info) == bool: + if (self._get_type(param, annotation_info) == bool or + param.kind == inspect.Parameter.KEYWORD_ONLY): long_flag = '--{}'.format(name) short_flag = '-{}'.format(shortname) args.append(long_flag) @@ -309,6 +310,8 @@ class register: # pylint: disable=invalid-name if param.kind == inspect.Parameter.VAR_POSITIONAL: kwargs['nargs'] = '+' + elif param.kind == inspect.Parameter.KEYWORD_ONLY: + kwargs['default'] = param.default elif typ is not bool and param.default is not inspect.Parameter.empty: kwargs['default'] = param.default kwargs['nargs'] = '?'