Skip to content

Releases: wemake-services/wemake-python-styleguide

Version 0.3.0 aka The Hacktoberfest Feast

27 Oct 21:08
386f04e
Compare
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
Compare
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
Compare
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
Compare
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
Compare
Choose a tag to compare

Features

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

Misc

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

Version 0.0.14

23 Sep 12:45
fc8ced6
Compare
Choose a tag to compare

Features

  • Adds WrongModuleNamePatternViolation
    and WrongModuleNameUnderscoresViolation
  • Adds TooManyImportsViolation error and --max-imports option
  • Adds --i-control-code option to ignore InitModuleHasLogicViolation
  • Adds check for underscored numbers
  • Forbids u'' strings
  • Adds noqa and type comments checks

Misc

  • Changes how many errors are generated for limits violations
  • Refactors how visitors are injected into the checker, now using presets
  • Creates new visitor type: BaseTokenVisitor for working with tokenize
  • Improves typing support
  • Adds flake8-bandit plugin
  • Adds flake8-eradicate plugin
  • Adds flake8-print plugin for development
  • Removes delegate concept from the codebase

Version 0.0.13 aka The Jones Complexity

15 Sep 12:22
d5a9841
Compare
Choose a tag to compare

This release is the last feature release before 0.1.0.
However, there might be some supporting releases.

Features

  • Adds jones complexity checker
  • Adds --max-line-complexity and --max-jones-score options

Misc

  • Improves docs: adds detailed installation instructions
  • Removes flake8-blind-except plugin

Version 0.0.12

13 Sep 04:48
bce6424
Compare
Choose a tag to compare

This is just a supporting release.
There are no new features introduced.

We have changed the error codes for general checks.

Bugfixes

Misc

  • Improves docs: now all errors are sorted by code
  • Improves docs: now all errors have reasoning
  • Improves docs: some references are now clickable in web version
  • Improves docs: now docs include CHANGELOG.md
  • Improves docs: now we have templates for bug and rule-request
  • Replaced pytest-isort with flake8-isort

Version 0.0.11

11 Sep 10:11
ad4216b
Compare
Choose a tag to compare

This is just a supporting release.
There are no new features introduced.

Bugfixes

Misc

  • Introduced the concept of regression testing, see test/fixtures/regression
  • Removed compat.py
  • Fixes some minor typos, problems, markup inside the docs
  • Adds some new configuration to sphinx
  • Changes sphinx docs structure a little bit

Version 0.0.10 aka The Module Reaper

10 Sep 13:37
93c580c
Compare
Choose a tag to compare

Features

  • Adds WrongModuleNameViolation, WrongModuleMagicNameViolation,
    and TooShortModuleNameViolation
  • Adds --min-module-name-length config option
  • Adds a blacklist of module names
  • Adds InitModuleHasLogicsViolation
  • Adds EmptyModuleViolation
  • Adds a whitelist of magic module names

Bugfixes

  • Fixes Option class to have have incorrect type field, now using strings
  • Fixes that WrongStringVisitor was not activated

Misc

  • Improved typing support
  • Now each error has a link to the corresponding constant (if any)
  • Improved docs with links to the corresponding configuration flags