Как частично отключить/игнорировать правила pylint?

Многие из моих скриптов анализируют аргументы командной строки внутри блока if __name__ == '__main__'. Я использую «нормальные» имена переменных, например. parser. Поскольку этого нет ни в одной функции, pylint выдаст C0103: invalid constant name <variable>. Поскольку я на самом деле не использую эти переменные как константы (просто анализирую аргументы), мне было бы немного странно использовать здесь заглавные буквы.

Есть ли способ частично отключить правила pylint, чтобы не выдавать C0103 внутри блока if __name__ == '__main__'?

Я хочу следующее:

import argparse

PI = 3.14 # <--- should give no C0103
e = 2.71 # <-- should throw C0103

if __name__ == '__main__':
    parser = argparse.ArgumentParser() # <-- should give NO C0103
    PARSER = argparse.ArgumentParser() # <-- should optionally give C0103 (wrong variable name)

Большое спасибо :-).


person Gx1sptDTDa    schedule 10.07.2014    source источник
comment
Написать функцию main и вызвать ее? Не знаю, есть ли лучший способ.   -  person user2357112 supports Monica    schedule 10.07.2014
comment
Это обход проблемы, а не ее устранение.   -  person Gx1sptDTDa    schedule 10.07.2014


Ответы (1)


Этого можно добиться, обернув метод main комментариями pylint.

import argparse
# pylint: disable=C0103
PI = 3.14 # <--- should give no C0103
# pylint: enable=C0103
e = 2.71 # <-- should throw C0103

# pylint: disable=C0103
if __name__ == '__main__':
    parser = argparse.ArgumentParser() # <-- should give NO C0103
    PARSER = argparse.ArgumentParser()
# pylint: enable=C0103
person tschanzt    schedule 10.07.2014