reimplemented-container-builtin (PIE807)
Derived from the flake8-pie linter.
Fix is sometimes available.
What it does
Checks for lambdas that can be replaced with the list
or dict
builtins.
Why is this bad?
Using container builtins are more succinct and idiomatic than wrapping the literal in a lambda.
Example
from dataclasses import dataclass, field
@dataclass
class Foo:
bar: list[int] = field(default_factory=lambda: [])
Use instead:
from dataclasses import dataclass, field
@dataclass
class Foo:
bar: list[int] = field(default_factory=list)
baz: dict[str, int] = field(default_factory=dict)