Skip to main content

A Flake8 plugin that implements miscellaneous checks from Ruff.

Project description

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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8_ruff-0.3.0.tar.gz (3.2 kB view hashes)

Uploaded Source

Built Distribution

flake8_ruff-0.3.0-py3-none-any.whl (3.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page