Features
- Adds
python3.9
support - Forbids to use new-style decorators on
python3.9
- Changes how we treat own/foreign attributes,
since now we only check assigned attribute names forself
/cls
/mcs
,
but not any other ones.
So, now writtingpoint.x = 1
will not trigger any violations.
Previously, it would raise "too short name". - Forbids using non-trivial expressions as an argument to
except
- Forbids using too many variables in a tuple unpacking
- Forbids using
float("NaN")
. - Forbids assigning to a slice
- Allow
__call__
method to be asynchronous - Allows common strings not to be counted against string constant overuse limit
- Forbids to unpack iterable objects to lists #1259
- Forbids to use single
return None
- Add
__await__
to the list of priority magic methods - Forbids to use float zeros (
0.0
) - Forbids
raise Exception
andraise BaseException
- Forbids to use
%
with zero as the divisor - WPS531: Forbids testing conditions to just return booleans when it is possible to simply return the condition itself
- Forbids to use unsafe infinite loops
- Forbids to use raw strings
r''
when not necessary - Forbids to use too complex
f
-strings - Forbids to use too many
raise
statements inside a single function - Forbids to compare with
float
andcomplex
values - Forbids single element destruct
- Forbids to ignore some violations (configurable) on a line level
- Forbids single element unpacking
- Forbids to unpack lists with side-effects
- Forbids to use miltiline strings except for assignments and docstrings
- Forbids not returning anything in functions and methods starting with
get_
- Forbids to use empty comment
- Forbids using bitwise operation with boolean operation
- Forbids inconsistent structuring of multiline comprehensions
- Forbids to use unpythonic getters and setters such as
get_attribute
orset_attribute
- Now
credits
,license
, andcopyright
builtins are free to shadow
Bugfixes
- Fixes fails of annotation complexity on
Literal[""]
- Fixes how wrong variable names were checked case sensitive with
WPS110
- Fixes false positives DirectMagicAttributeAccessViolation with
__mro__
,__subclasses__
and__version__
- Make
WPS326
work when there is comment between string literals - Allowed yield statements in call method
- Allow to use
^
with1
- Fixes false positives in WPS513 and WPS323
- Fixes false positive WPS426 if
lambda
in loop uses only its arguments - Fixes false negative WPS421 with
pprint.pprint
- Fixes WPS441 triggering when reusing variable names in multiple loops
- Fixes false positive ImplicitEnumerateViolation on range with step #1742
- Allows to use
_
to declare several unused variables,
like:x, _, _ = coordinates()
- Fixes variable reassignment in class context
- Fixes that
*'abc'
was not counted as pointless star expression - Fixes that
-some
was counted as overused expression - Fixes several bugs with attribute names
Misc
- Updates lots of dependenices
- Fixed documentation for TooManyPublicAttributesViolation
- Updated isort config
- Introduce helper script to check for missing calls to
self.generic_visit(node)
in AST visitors - Updates
poetry
version to1.1
- Updates
reviewdog
version to0.11.0
and addsaction-depup