github wemake-services/wemake-python-styleguide 0.15.0
Version 0.15.0 aka python3.9

latest releases: 0.19.2, 0.19.1, 0.19.0...
3 years ago

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 for self/cls/mcs,
    but not any other ones.
    So, now writting point.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 and raise 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 and complex 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 or set_attribute
  • Now credits, license, and copyright 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 ^ with 1
  • 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 to 1.1
  • Updates reviewdog version to 0.11.0 and adds action-depup

Don't miss a new wemake-python-styleguide release

NewReleases is sending notifications on new releases.