Как Pylint не вызывает сообщение об отсутствии участника в argparse? - PullRequest
0 голосов
/ 06 июня 2019

Я написал код, подобный этому.

from argparse import Namespace

class Config(Namespace): 
    def __init__(self, filename):
        config = yaml.load(open(filename, 'r'))

        super(Config, self).__init__(**config)

config = Config('some/path/where/yaml/file/exist')

print(config.some_attr)

Затем Pyline выдает предупреждение об отсутствии члена, как это.

Instance of 'Config' has no 'some_attr' member pylint(no-member)

Но некоторые из методов argparse неподнять предупреждение об отсутствии участника.

parser = argparse.ArgumentParser("test")
parser.add_argument('--config', type=str, default='config')
args, _ = parser.parse_known_args()

args.test # no warning
args.config # no warning

Этот код не вызывает никакого предупреждения в pylint.

Мне было любопытно, поэтому я посмотрел на соответствующий код в github.Но первое возвращаемое значение ArgumentParser.parse_knwon_args - это также объект Namespace.

Как исправить мой пользовательский класс Config, который не вызывает предупреждение?Я не хочу вставлять '# pylint: disable = no-member' в мой блок кода.Есть ли решение в модуле (классе)?

...