Skip to content

A Flake8 plugin that implements miscellaneous checks from Ruff.

License

Notifications You must be signed in to change notification settings

tjkuson/flake8-ruff

Repository files navigation

flake8-ruff

image

A Flake8 plugin that implements miscellaneous checks from Ruff.

Specifically, this plugin implements checks that are under the RUF category (the rules that do not have a direct equivalent in Flake8).

Requirements

Python 3.9 to 3.12 is supported.

Installation

Install from PyPI. For example,

pip install flake8-ruff

Then follow the instructions on the Flake8 documentation to enable the plugin.

Checks

RUF010 Use explicit conversion flag

Checks for str(), repr(), and ascii() as explicit conversions within f-strings.

For example, replace

f"{ascii(foo)}, {repr(bar)}, {str(baz)}"

with

f"{foo!a}, {bar!r}, {baz!s}"

or, often (such as where __str__ and __format__ are equivalent),

f"{foo!a}, {bar!r}, {baz}"

Derived from explicit-f-string-type-conversion (RUF010).

RUF018 Avoid assignment expressions in assert statements

Checks for named assignment expressions in assert statements. When Python is run with the -O option, the assert statement is ignored, and the assignment expression is not executed. This can lead to unexpected behavior.

For example, replace

assert (result := foo()) is not None

with

result = foo()
assert result is not None

Derived from assignment-in-assert (RUF018).

RUF020 typing.Never | T is equivalent to T

Checks for typing.Never and typing.NoReturn in union types, which is redundant.

For example, replace

typing.Never | int | None

with

int | None

Derived from never-union (RUF020).

RUF025 Unnecessary dict comprehension for iterable; use dict.fromkeys instead

Checks for dict comprehensions that create a dictionary from an iterable with a constant value. Instead, use dict.fromkeys, which is more efficient.

For example, replace

{key: 0 for key in keys}

with

dict.fromkeys(keys, 0)

and

{key: None for key in keys}

with

dict.fromkeys(keys)

Derived from unnecessary-dict-comprehension-for-iterable (RUF025).

About

A Flake8 plugin that implements miscellaneous checks from Ruff.

Topics

Resources

License

Stars

Watchers

Forks

Languages