Ruff percent-format-expected-sequence (F503)

percent-format-expected-sequence в Ruff проверяет использование значений типа "mapping" (например, словарей) в строковых форматах printf без именованных заполнителей.

Почему это неправильно

При использовании значений типа "mapping" (например, словаря) в строках формата printf ключи должны быть именованными. В противном случае выражение вызовет TypeError.

Пример ошибки

"%s, %s" % {"greeting": "Hello", "name": "World"}

Как правильно

"%(greeting)s, %(name)s" % {"greeting": "Hello", "name": "World"}

Или:

"%s, %s" % ("Hello", "World")