Правила Ruff, связанные с pyflakes (F)
Правила Ruff, связанные с pyflakes. Подробнее об этом плагине на его странице PyPI
Часть категории Правила проверок кода в Ruff.
Правила Ruff, связанные с pyflakes. Подробнее об этом плагине на его странице PyPI
Часть категории Правила проверок кода в Ruff.
unused-import в Ruff проверяет наличие неиспользуемых импортов.
Неиспользуемые импорты создают лишнюю нагрузку на производительность во время выполнения и могут привести к возникновению циклических зависимостей. Они также усложняют чтение кода.
Если оператор import используется для проверки доступности модуля, вместо этого используйте importlib.util.find_spec.
Если импорт предназначен для …
import-shadowed-by-loop-var в Ruff проверяет случаи, когда переменная цикла затеняет импорт.
Затенение импорта переменной цикла затрудняет чтение и понимание кода, так как идентичность импортируемого объекта становится неочевидной. Кроме того, это часто указывает на ошибку, так как маловероятно, что переменная цикла должна заменять импортируемый объект.
Рекомендуется использовать другое имя …
undefined-local-with-import-star в Ruff проверяет использование глобального импорта с подстановочным символом (*).
Глобальный импорт (например, from module import *) усложняет определение того, какие символы доступны в текущем пространстве имен и из какого модуля они были импортированы. Такой стиль импорта также не рекомендуется согласно PEP 8.
Вместо этого указывайте явно, какие …
late-future-import в Ruff проверяет, что импорты из __future__ располагаются в начале файла.
Импорты из __future__ должны быть размещены в начале файла, перед любыми другими операторами (за исключением строк документации). Использование __future__-импорта в другом месте является некорректным и приведёт к SyntaxError.
from pathlib import Path
from …
undefined-local-with-import-star-usage в Ruff проверяет использование имён, которые могут быть неопределёнными, но также могут быть импортированы с использованием глобального импорта (*).
Глобальный импорт (например, from module import *) затрудняет определение доступных символов в текущем пространстве имен. Если модуль содержит глобальный импорт, а имя в текущем пространстве имен не было явно …
undefined-local-with-nested-import-star-usage в Ruff проверяет использование глобального импорта (*) вне пространства имен модуля.
Использование глобального импорта вне пространства имен модуля (например, внутри функций) может привести к путанице, так как импорт может затенять локальные переменные.
Хотя PEP 8 не рекомендует использовать глобальные импорты, если это необходимо, их следует размещать в …
future-feature-not-defined в Ruff проверяет, что импортируемые из __future__ модуля функции определены в текущей версии Python.
Импортирование неопределённых или неподдерживаемых элементов из модуля __future__ приведёт к SyntaxError.
from __future__ import nonexistent_feature
Убедитесь, что импортируемая функция или функциональность существует в используемой версии Python.
from __future__ …
percent-format-invalid-format в Ruff проверяет наличие некорректных строковых форматов в стиле printf.
Форматные строки в стиле printf требуют наличия спецификаторов преобразования. Эти спецификаторы должны содержать символ % с последующим указанием типа преобразования.
"Hello, %" % "world"
"Hello, %s" % "world"
percent-format-expected-mapping в Ruff проверяет использование именованных заполнителей в строковых форматах printf без значений типа отображения.
При использовании именованных заполнителей в строках формата printf значения должны быть типа "mapping" (например, словарём). В противном случае выражение вызовет TypeError.
"%(greeting)s, %(name)s" % ("Hello", "World")
"%(greeting …
percent-format-expected-sequence в Ruff проверяет использование значений типа "mapping" (например, словарей) в строковых форматах printf без именованных заполнителей.
При использовании значений типа "mapping" (например, словаря) в строках формата printf ключи должны быть именованными. В противном случае выражение вызовет TypeError.
"%s, %s" % {"greeting": "Hello", "name": "World"}
percent-format-extra-named-arguments в Ruff проверяет неиспользуемые ключи в словарях, передаваемых в строковые форматы printf.
Неиспользуемые именованные заполнители в строковых форматах printf избыточны и, скорее всего, указывают на ошибку. Их следует удалить.
"Hello, %(name)s" % {"greeting": "Hello", "name": "World"}
"Hello, %(name)s" % {"name": "World"}
percent-format-missing-argument в Ruff проверяет именованные заполнители в строках формата printf, для которых отсутствуют соответствующие значения в переданном словаре.
Именованные заполнители, для которых нет соответствующих значений в переданном словаре, вызовут KeyError во время выполнения.
"%(greeting)s, %(name)s" % {"name": "world"}
"Hello, %(name)s" % {"name …
percent-format-mixed-positional-and-named в Ruff проверяет использование смешанных позиционных и именованных заполнителей в строках формата printf.
Python не поддерживает смешивание позиционных и именованных заполнителей в строках формата printf. Использование смешанных заполнителей вызовет TypeError во время выполнения.
"%s, %(name)s" % ("Hello", {"name": "World"})
"%s, %s" % ("Hello …
percent-format-positional-count-mismatch в Ruff проверяет несоответствие между количеством позиционных заполнителей и числом переданных значений в строках формата printf.
Если в строку формата printf передано слишком много или слишком мало значений для подстановки, это вызовет TypeError во время выполнения.
"%s, %s" % ("Hello", "world", "!")
"%s, %s …
percent-format-star-requires-sequence в Ruff проверяет использование спецификатора * в строках формата printf с некортежными значениями.
Использование спецификатора * с некортежными значениями вызовет TypeError во время выполнения.
from math import pi
"%(n).*f" % {"n": (2, pi)}
from math import pi
"%.*f" % (2, pi) # 3.14
percent-format-unsupported-format-character в Ruff проверяет строки формата printf на наличие недопустимых символов формата.
В строках формата printf символ % используется для обозначения заполнителей. Если после % следует недопустимый символ формата, это вызовет ValueError во время выполнения.
"Hello, %S" % "world"
"Hello, %s" % "world"