Treat the field as a boolean field.
Parameters:
Name |
Type |
Description |
Default |
name |
str
|
The name of the argument.
|
required
|
field |
FieldInfo
|
A dictionary representation of the field.
|
required
|
Returns:
Type |
Description |
FuncArgs
|
Function arguments for the parser add_argument method.
|
Source code in m/cli/engine/parsers/boolean.py
| def handle_field(name: str, field: FieldInfo) -> FuncArgs:
"""Treat the field as a boolean field.
Args:
name: The name of the argument.
field: A dictionary representation of the field.
Returns:
Function arguments for the parser `add_argument` method.
"""
default = field.default
extras = cast(dict, field.json_schema_extra or {})
aliases = cast(list[str], extras.get('aliases', None))
args: AnyMap = {
'help': argument_description(field.description or '', MISSING),
'required': extras.get('required', False),
}
if default:
args['action'] = 'store_false'
args['dest'] = name
names = [argument_name(f'no-{name}')]
if aliases:
names = [argument_name(f'no-{alias}') for alias in aliases]
else:
args['action'] = 'store_true'
names = [argument_name(name)]
if aliases:
names = [argument_name(alias) for alias in aliases]
return FuncArgs(args=names, kwargs=args)
|