in-dict-keys (SIM118)
Added in v0.0.176 · Related issues · View source
Derived from the flake8-simplify linter.
Fix is always available.
What it does
Checks for key-existence checks against dict.keys() calls.
Why is this bad?
When checking for the existence of a key in a given dictionary, using
key in dict is more readable and efficient than key in dict.keys(),
while having the same semantics.
Example
Use instead:
Fix safety
Given key in obj.keys(), obj could be a dictionary, or it could be
another type that defines a .keys() method. In the latter case, removing
the .keys() attribute could lead to a runtime error. The fix is marked
as safe when the type of obj is known to be a dictionary; otherwise, it
is marked as unsafe.