Использование функций-членов app.logger
flask (таких как app.logger.error
) заставляет pylint
сообщать об ошибках E1101
(no-member
), даже если эти элементы app.logger
определены во время выполнения.
Это можно воспроизвести с помощью следующих файлов:
app.py
import flask
app = flask.Flask(__name__)
@app.route('/')
def say_hello():
app.logger.debug('A debug message')
app.logger.error('An error message')
return 'hello'
requirements.txt
pylint==2.1.0
Flask==1.0.2
Примеры команд для воспроизведения проблемы с использованием virtualenv
:
(Здесь используется Python 3.5, но проблема не связана с этой версией)
virtualenv --python=python3.5 env
source env/bin/activate
pip install pip==18.0
pip install -r requirements.txt
И, наконец, запускаем pylint
:
pylint -E app
Возвращает эти ошибки:
************* Module app
app.py:9:4: E1101: Method 'logger' has no 'debug' member (no-member)
app.py:10:4: E1101: Method 'logger' has no 'error' member (no-member)
Есть ли хороший способ избежать этих ложных срабатываний?