Skip to content

Releases: wemake-services/wemake-python-styleguide

Version 0.6.1

05 Jan 13:16
9a753da

Choose a tag to compare

Bugfixes

  • Fixes a conflict between our plugin and pyflakes

Version 0.6.0

19 Dec 08:23
18fe9c6

Choose a tag to compare

Features

  • Adds flake8-per-file-ignore dependency
  • Adds default values to the flake8 --help output
  • Adds do as a restricted variable name
  • Forbids multiple assignment targets for context managers
  • Forbids to use incorrect multi-line parameters
  • Forbids to use bool values as positional arguments
  • Forbids to use extra indentation
  • Forbids to use inconsistent brackets
  • Forbids to use multi-line function type annotations
  • Forbids to use uppercase string modifiers
  • Forbids to use assign chains: now we only can use one assign per line
  • Forbids to use assign with unpacking for any nodes except Name
  • Forbids to have duplicate except blocks

Bugfixes

  • Fixes tests failing on windows (@sobolevn hates windows!),
    but it still fails sometimes
  • Fixes bug when @staticmethod was treated as a module member
  • Fixes bug when some nodes were not checked with TooDeepNestingViolation
  • Fixes bug when it was possible to provide non-unique aliases
  • Fixes incorrect line number for incorrect parameter names
  • Fixes bug when names like __some__value__ were not treated as underscored
  • Fixes bug when assignment to anything rather than name was raising an error

Misc

  • Refactoring: now we fix async nodes offset in a special transformation
  • Improves docs: specifies what transformation is
  • Improves docs: making contributing section in the README more friendly
  • Improves build: changes how CI installs poetry

Version 0.5.1

15 Nov 14:20
d196855

Choose a tag to compare

Bugfixes

  • Fixes all possible errors that happen
    because of unset parent and function_type properties

Version 0.5.0

10 Nov 12:17
889080f

Choose a tag to compare

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

Version 0.4.0

30 Oct 16:00
914c0ec

Choose a tag to compare

Development was focused around better test coverage and providing a better API
for tests. We also now covering more cases and testing violation texts.

Features

  • Breaking: removes duplicating module name rules, now we use the same rules
    for both variables and modules
  • Breaking: removes --min-module-name-length options
  • Breaking: renames --min-variable-name-length into --min-name-length
  • Dependencies: updates flake8 version to 3.6
  • Dependencies: removes pycodestyle pinned version

Bugfixes

  • Multiple fixes to error text formats to be more readable
  • Fixes UNDERSCORED_NUMBER_PATTERN to match names like come_22_me
  • Fixes UpperCaseAttributeViolation not being displayed in the docs
  • Fixes consistency checks being duplicated in the docs
  • Fixes UnderscoredNumberNameViolation showing incorrect line number
  • Fixes ProtectedAttributeViolation to respect super() and mcs
  • Fixes ProtectedAttributeViolation to show correct text
  • Fixes BadNumberSuffixViolation to show correct text
  • Fixes TooManyBaseClassesViolation to show correct text
  • Fixes TooManyElifsViolation to show correct text
  • Fixes TooDeepNestingViolation to show correct text
  • Fixes TooManyMethodsViolation to show correct text
  • Fixes ReassigningVariableToItselfViolation to show correct text
  • Renames UnderscoredNumberNameViolation to UnderscoredNumberNameViolation

Misc

  • Refactoring: removed duplicate logic inside logics/filenames.py
  • Improves tests: now testing almost all violations inside noqa.py
  • Improves tests: now testing violations text
  • Improves tests: now all common patters live in related conftest.py
  • Improves docs: now all configuration options are listed in the violations

Version 0.3.0 aka The Hacktoberfest Feast

27 Oct 21:08
386f04e

Choose a tag to compare

This release was made possible by awesome people who contributed
to the project during #hactoberfest. List of awesome people:

Features

  • Adds flake8-print as a dependency
  • Adds typing-extensions as a dependency
  • Forbids to use quit and exit functions
  • Forbids the comparison of two literals
  • Forbids the incorrect order comparison, enforcing variable to come first
  • Forbids underscores before numbers in names
  • Forbids class level attributes whose name is not in snake_case
  • Forbids comparison of the same variables
  • Forbids inconsistent octal, binary, and hex numbers
  • Forbids too many arguments in lambda functions
  • Forbids extra object in parent classes list
  • Forbids for loops with unused else
  • Forbids variables self reassignment
  • Forbids try with finally without except
  • Forbids if statements with invalid conditionals
  • Forbids opening parenthesis from following keyword without space in between them
  • Forbids the use of more than 2 for loops within a comprehension
  • Forbids variable names with more than one consecutive underscore
  • Restricts the maximum number of base classes aka mixins
  • Forbids importing protected names
  • Forbids using protected methods and attributes
  • Forbids yield inside __init__ method

Bugfixes

  • Fixes that MultipleIfsInComprehensionViolation was not enabled
  • Fixes flaky behaviour of test_module_names test package
  • Fixed TooManyMethodsViolation not displaying line number in output
  • Fixed OffsetVisitor due to python bug

Misc

  • Updates poetry version
  • Refactoring: some general changes, including better names and APIs
  • Improves docs: now we have versionadded for each violation
  • Improves docs: now we explicitly state how some violations might be ignored
  • Improves tests: now we are testing options
  • Improves tests: now we have different tests/ folder structure
  • Improves tests: now we are testing presets
  • Improves tests: now we are using different logic inside assert_errors
  • Improves tests: now testing magic numbers in more situations
  • Improves tests: now testing more situations with empty base classes
  • Improves tests: now testing presets, that they have all the existing visitors
  • Improves tests: now using stricter noqa checks
  • Improves tests: now testing that any name is allowed when using a variable
  • Improves types: now all class attributes are marked as ClassVar
  • Improves types: now we use final to indicate what should not be changed
  • Improves types: now we do not have any ugly import hacks

Version 0.2.0

04 Oct 18:45
8767db3

Choose a tag to compare

This release was made possible by awesome people who contributed
to the project during #hactoberfest. List of awesome people:

Features

  • Now we are counting async function as a module member
  • We now forbid to use credits() builtin function
  • We now check async for and async with nesting level
  • We now check async for and async with variable names
  • We now count async methods as method for classes complexity check
  • We now count async functions as functions for module complexity check
  • We now check async functions names and arguments
  • We now count async functions complexity
  • We now ignore async functions in jones complexity check
  • We now check for nested async functions
  • We now check for async functions with @staticmethod decorator

Misc

  • Improves docs: add usage.rst
  • Improves docs: adds naming convention to the naming.py
  • Improves docs: multiple typos, bugs, and issues fixes
  • Improves tests: now we are testing async comprehensions

Version 0.1.0

01 Oct 13:19
7fe0d35

Choose a tag to compare

Features

  • Breaking: changes violation codes, now they are grouped by meaning

Misc

  • Refactoring: changes how visitors are organized inside the package
  • Improves docs: now we have a glossary
  • Refactoring: refactoring terms that violate our glossary
  • Improves docs: now all error files contain fancy documentation and summary
  • Improves docs: now we have added API reference to the docs
  • Improves docs: adds new plugin development guide

Version 0.0.16

30 Sep 12:03
6abc1fe

Choose a tag to compare

Features

  • Adds flake8-logging-format dependency
  • Adds flake8-type-annotations dependency
  • Adds flake8-breaking-line dependency
  • Removes flake8-super-call dependency
  • Adds PartialFloatViolation
  • Adds MagicNumberViolation
  • Adds WrongDocCommentViolation
  • Adds MAGIC_NUMBERS_WHITELIST constant
  • Changes what variable names are blacklisted, adds false, true, and no

Misc

  • Improves docs: now including docs for --max-condition option
  • Improves docs: adds some new Zen of Python references
  • Improves tests: adds many new examples
  • Improves docs: now each error has its error message displayed in the docs
  • Improves docs: readme is now ready for the release
  • Improves docs: now error pages are split
  • Improves docs: now all flake8 plugin dependencies are documented

Version 0.0.15

25 Sep 16:36
e1ea1db

Choose a tag to compare

Features

  • Adds MultipleIfsInComprehensionViolation
  • Adds TooManyConditionsViolation
  • Adds --max-conditions option

Misc

  • Improves CONTRIBUTING.md
  • Moves issues templates to .github/ folder