- Don't recommend
__all__
be a tuple by @tonybaloney in #49 - Add clarity to the try in a loop rule by @tonybaloney in #48
- fix: pre-commit configuration filename by @adamantike in #32
- Test other versions of Python in CI by @tonybaloney in #33
- Migrate to pylint v3 by @jenstroeger in #46
- Drop support for Python 3.7
- Add support for Python 3.12
- Fixes a regression bug in the loop invariant name
- Renamed the global usage in loop to
loop-global-usage
- Added support for invariant f-strings
- Bugfix: Doesn't highlight list, tuple or dict with only constant values as being invariant
- Bugfix: No longer suggests list comprehensions when the if statement has an elif/else clause
- Bugfix: Pylint enable/disable arguments are allowed on the
perflint
CLI entry point
- Added a standalone entry point (
perflint
)
- Added checks for list and dictionary comprehensions as faster alternatives to loops
- Marks global lists which are mutated in local scopes
- Added a check for non-mutated lists where a tuple would be more efficient (W8301)
- (BUG) No longer raises unary operators against const values
- (BUG) No longer raises slices as invariant expressions
- (BUG) raise, return, yield and yield from are considered variant expressions because they impact control-flow
print()
is considering as having a side-effect and variant.- Constant values explored in loop-invariance
- Assignment statements have been corrected for constant values