Mypy выдает синтаксическую ошибку для многострочных f-строк, несмотря на то, что код работает без ошибок ⇐ Python

Программы на Python
Anonymous
Mypy выдает синтаксическую ошибку для многострочных f-строк, несмотря на то, что код работает без ошибок

Сообщение Anonymous »

Я работаю с Python 3.12 и недавно добавил в свой проект проверку типов mypy. Я столкнулся со странной проблемой, когда mypy выдает синтаксическую ошибку для определенных f-строк в моем коде, особенно для тех, в которых символы новой строки находятся в середине f-строки. Любопытно то, что интерпретатор Python вообще не жалуется и прекрасно выполняет код.
Вот упрощенный пример f-строки, которую mypy помечает. как синтаксическая ошибка:

Код: Выделить всё

name = "Alice"
message = f"Hello, {name
}, welcome!"
Ошибка Mypy:

Код: Выделить всё

mypy minimal_reproducible_example.py
src/loculus_preprocessing/alice.py:2: error: unterminated string literal (detected at line 2)  [syntax]
Found 1 error in 1 file (errors prevented further checking)
Даже добавление --python-version 3.12 не исправляет ситуацию.
Я понимаю, что использование тройных кавычек () для многострочных строк рекомендуется, но в этом случае код работает в интерпретаторе без проблем, а mypy постоянно завершается с ошибкой синтаксиса.
Мои вопросы:
  • Почему mypy считает это синтаксической ошибкой, хотя Python 3.12 ее принимает?
  • Это ограничение mypy или я что-то упускаю из синтаксиса Python, что может привести к проблемам?


Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-without

Вернуться в «Python»