Aqui está o código
# args: argparse.Namespace
source: str = args.source
...
# subparsers: argparse._SubParsersAction
parser = subparsers.add_parser()
Na primeira linha de código, : str
basta dizer ao Pylance que source
é uma string, embora args.source
seja Any
.
Entretanto, na segunda linha, quando adiciono : argparse.ArgumentParser
, o tipo de parser
ainda é Any | argparse.ArgumentParser
. Tenho que usar manualmente cast(argparse.ArgumentParser)
para obter o efeito desejado, já que add_parser()
é digitado como returing Any
.
Por que isso acontece? Ambas são atribuições para mim, uma de um campo, outra do retorno de uma função.