Я использую Python 3 и хочу обернуть argparse.ArgumentParser
специальным классом, который устанавливает
formatter_class=argparse.RawDescriptionHelpFormatter
по умолчанию. Я могу сделать это успешно, однако IntelliJ IDEA 2017.1 с плагином Python (PyCharm) дает предупреждение для следующего кода:
class CustomParser(argparse.ArgumentParser):
def __init__(self, formatter_class=argparse.RawDescriptionHelpFormatter, **kwargs):
# noinspection PyArgumentList
super().__init__(formatter_class=formatter_class, **kwargs) # warning in this line for the last argument if suppression comment above removed
Если удалять комментарий с помощью команды подавления IntelliJ, предупреждение о kwargs означает "Ожидаемый словарь, получивший dict", однако он работает. Это ложное положительное предупреждение или это можно сделать лучше без предупреждения? Есть ли проблема в этом предупреждении, что это помогает избежать?
Боковой вопрос: есть ли разница в использовании
formatter_class = kwargs.pop('formatter_class', argparse.RawDescriptionHelpFormatter)
вместо явного определения именованного параметра в подписи? Согласно PEP20 более явным в подписи лучше, правильно?