Handle aliased flags

This commit is contained in:
Kovid Goyal
2022-08-17 16:33:41 +05:30
parent 2ca8ae8e5f
commit a32251cab4
4 changed files with 50 additions and 12 deletions

View File

@@ -26,6 +26,7 @@ from .typing import BadLineType, TypedDict
class OptionDict(TypedDict):
dest: str
name: str
aliases: FrozenSet[str]
help: str
choices: FrozenSet[str]
@@ -244,7 +245,7 @@ def parse_option_spec(spec: Optional[str] = None) -> Tuple[OptionSpecSeq, Option
mpat = re.compile('([a-z]+)=(.+)')
current_cmd: OptionDict = {
'dest': '', 'aliases': frozenset(), 'help': '', 'choices': frozenset(),
'type': '', 'condition': False, 'default': None, 'completion': {},
'type': '', 'condition': False, 'default': None, 'completion': {}, 'name': ''
}
empty_cmd = current_cmd
@@ -261,9 +262,10 @@ def parse_option_spec(spec: Optional[str] = None) -> Tuple[OptionSpecSeq, Option
continue
if line.startswith('--'):
parts = line.split(' ')
defdest = parts[0][2:].replace('-', '_')
current_cmd = {
'dest': parts[0][2:].replace('-', '_'), 'aliases': frozenset(parts), 'help': '',
'choices': frozenset(), 'type': '',
'dest': defdest, 'aliases': frozenset(parts), 'help': '',
'choices': frozenset(), 'type': '', 'name': defdest,
'default': None, 'condition': True, 'completion': {}
}
state = METADATA