Укажите аргументы формата строки в качестве параметров функции регистрации (logging-not-lazy) - PullRequest
0 голосов
/ 14 января 2020

Я прочитал все другие решения для этой ошибки и изменил свой код соответственно, но ошибка все еще сохраняется. Что я здесь не так делаю?

Это мой код:

LOGGER.error(
    'There are no frames to download in the chosen ' +
    'time range: %s to %s. Try a different time range with the ' +
    '--start_date and --end_date options. This error can also arise ' +
    'if the downloaded files have been deleted or modified during' +
    'execution.', str(start_date), str(end_date))

Сообщение об ошибке:

.tox / pylint / lib / python3. 8 / site-packages / polaris / fetch / data_fetch_decoder.py: 143: 8: W1201: укажите аргументы формата строки в качестве параметров функции ведения журнала (ведение журнала - не ленивый)

--------- -------------------------------------------------- ------- Ваш код был оценен в 9.99 / 10 (предыдущий запуск: 9.99 / 10, +0.00)

ОШИБКА: Ошибка вызова для команды /home/jai/polaris/.tox/pylint/ Тесты bin / pylint .tox / pylint / lib / python3 .8 / site-packages / polaris .tox / pylint / lib / python3 .8 / site-packages / contrib (выход с кодом 4)

Обновление 1: удаление преобразования str () дает мне тот же вывод, но ошибка сохраняется. Как отмечалось в комментарии, ошибка вызвана какой-то другой проблемой, но мой вопрос все еще о том, почему Линтер дает мне такой вывод.

Обновление 2: используется неявная конкатенация строк, и теперь я получаю следующую ошибку

W1202: использовать форматирование% в функциях ведения журнала и передавать параметры% в качестве аргументов (logging-format-interpolation)

Код для неявной конкатенации строк с использованием форматирования:

LOGGER.error(
            '{0} {1} {2} {3} {4}'.format(
                'There are no frames to download in the chosen time range:',
                '%s to %s. Try a different time range with the',
                '--start_date and --end_date options. This error can',
                'also arise if the downloaded files have been deleted',
                'or modified during execution.'), start_date, end_date)

1 Ответ

1 голос
/ 14 января 2020

Это исправило предупреждение linter и мою ошибку:

LOGGER.error(
            ' '.join([
                'There are no frames to download in the chosen time ',
                'range: %s to %s. Try a different time range with ',
                'the --start_date and --end_date options. This error ',
                'can also arise if the downloaded files have been',
                'deleted or modified during execution.'
            ]), start_date, end_date)

Как указывал @ user2357112supportsMonica, pylint запутывается при использовании + для конкатенации, поэтому я использовал неявную конкатенацию литералов строк. Вуаля, это работает сейчас!

...