- Drop Python 3.10 support (flake8 itself now requires >=3.11)
- B018: only report a
map(),filter(),reversed(),zip()or
enumerate()statement when the name is the builtin, not when the module
defines or imports its own function under that name, which may well do the work - B031, B911: a bare
groupby/batchedimported fromitertoolsno longer
counts asitertoolswhen a later module-leveldefor assignment replaces it - B031, B911: an annotated
batched: Callable = itertools.batchedcounts as
itertools, like the same assignment without the annotation - B912, B913: only report
map()andzip()when the name is the builtin, not
when a module-leveldef,class, import or assignment replaces it with
something else - B905, B910: only report
zip()anddefaultdict(int)when the name is the
builtinzip/collections.defaultdict, not when a module-leveldef,
class, import or assignment replaces it with something else - B018, B031, B905, B910, B911: an import or
zip = builtins.zipstyle alias
inside a function or class no longer overrides the module's owndef,
classor import of that name, since it only binds the name locally - B042: don't report an
__init__that calls a direct base class's__init__
explicitly and forwards its own arguments unchanged and in order, like
Exception.__init__(self, msg, opt), also after another base's__init__
such as a mixin's - Add type hints throughout bugbear, checked with
mypy --strictin tox and CI