Skip to content

Version 0.5.0

Compare
Choose a tag to compare
@sobolevn sobolevn released this 10 Nov 12:17
· 2407 commits to master since this release
889080f

Features

  • Breaking: removes --max-conditions and --max-elifs options
  • Breaking: removes --max-offset-blocks
  • Breaking: changes default TooManyConditionsViolation threshold from 3 to 4
  • Breaking: changes TooManyBaseClassesViolation code from 225 to 215
  • Forbids to use lambda inside loops
  • Forbids to use self, cls, and mcs except for first arguments only
  • Forbids to use too many decorators
  • Forbids to have unreachable code
  • Forbids to have statements that have no effect
  • Forbids to have too long names for modules and variables
  • Forbids to have names with unicode for modules and variables
  • Add variable to the blacklisted names
  • Now RedundantLoopElseViolation also checks while loops

Bugfixes

  • Fixes TooManyConditionsViolation to work with any conditions, not just ifs
  • Fixes TooManyConditionsViolation that did not count conditions correctly
  • Fixes TooManyForsInComprehensionViolation to find all comprehension types
  • Fixes TooManyElifsViolation to check module level conditions
  • Fixes TooManyBaseClassesViolation docs location
  • Fixes WrongVariableNameViolation not checking lambda argument names
  • Fixes OffsetVisitor incorrect await handling

Misc

  • Refactoring: moves all complexity checks into complexity/ folder
  • Refactoring: improves how different keyword visitors are coupled
  • Improves docs: we have removed magic comments and code duplication
  • Improves docs: now _pages/ is named just pages/
  • Improves docs: now all violations are sorted correctly
  • Improves tests: now testing different keywords separately
  • Improves tests: now all violations must be contained in test_noqa.py
  • Improves tests: now we also run compile() on all ast examples
  • Improves tests: now we are sure about correct order of violations