Repository navigation
Releases: PyCQA/flake8-bugbear
Releases · PyCQA/flake8-bugbear
Release list
26.9.30
- 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)
26.9.9
- B044: New check for
assert <generator_expression>, which is always true (#534) - B031: allow reusing a group after assigning
list(group)ortuple(group)back to the same name (#395) - B028: report
warnings.warncalls that pass an explicitly emptyskip_file_prefixestuple (#510) - B019: also flag
async_lru.alru_cacheand check cache decorators onasync defmethods (#488) - B023: don't flag a function whose every reference is a direct call inside the loop body (#468, #380)
- B020: don't flag
for self.a in self.b: rebinding an attribute is not rebinding the base name (#248) - B018: handle also useless calls such as
isinstance(x, int)without assigning or using the result - B031: don't count a store-context reference as a use of the
groupbygenerator, and don't treat references in mutually exclusiveif/elif/elsebranches as multiple uses (#465) - B902: don't raise a false positive on a metaclass defined with a dotted base such as
abc.ABCMetaorenum.EnumMeta(#411) - B913: Add an optional check for unused
_targets inzip()loops (#545) - B912: only emit on Python 3.14+ where
map()supportsstrict=(#548)
25.11.29
- B043: Add new check to state don't call delattr with constant (#514)
- B042: ignore overloaded init, ignore if str+pickle dunder, improve README
25.10.21
- B042: New check for reminding to call super().init in custom exceptions
- B028: Skip if skip_file_prefixes is used (#503)
- B912: New check for
map()without an explicitstrict=parameter. (#516) - Add python3.14 Support / CI
- Remove python3.9 support / CI
- flake8-bugbear now requires at least Python 3.10, like the next release of flake8
24.12.12
24.10.31
24.8.19
- B910: implement to suggest using Counter() instead of defaultdict(int) (#489)
- B901: Do not trigger with explicit Generator return type (#481)
- B008: add some comments, rename b008_extend_immutable_calls (#476)
- B040: exception with note added not reraised or used (#477)
- B039, Add
ContextVarwith mutable literal or function call as default - B040: Add Exception with added note not reraised. (#474)
- Run tests in Python 3.13
- Type annotated code (#481 + #483)
- Replace hash with unsafe_hash (#486)
24.4.26
- B909: Fix false positive affecting containers of mutables (#469)