- B008: resolve direct module-level imports and aliases when matching
extend-immutable-calls(#252) - B015: allow comparisons inside pytest/unittest exception and warning assertion context managers, where an overloaded comparison may intentionally raise (#462).
- B020: stop flagging names bound inside nested destructuring patterns, like
seriesinfor i, (ax, (series, name)) in enumerate(zip(axs, series)); the loop rebinds the top-level targets, not those names (#521) - Add Python 3.15 support / CI
- B913: fix crash on
{**d for d in ...}dict unpacking in comprehensions, new in Python 3.15; B035 no longer mistakes the unpacked expression for a static key - B018: also report unary and arithmetic operations used as statements, such as a
+c * dcontinuation line that lost its parentheses (#452) - B042: don't treat a class named like an exception as one when its only bases are parameterized generics such as
ContextManager[T]; a generic base named like an exception, such asMyError[int], now counts (#538)