Releases: wemake-services/wemake-python-styleguide
Releases · wemake-services/wemake-python-styleguide
Version 0.3.0 aka The Hacktoberfest Feast
This release was made possible by awesome people who contributed
to the project during #hactoberfest
. List of awesome people:
- @novikovfred
- @riyasyash
- @sathwikmatsa
- @tipabu
- @roxe322
- @geoc0ld
- @lensvol
- @SheldonNunes
- @tommbee
- @valignatev
- @vsmaxim
Features
- Adds
flake8-print
as a dependency - Adds
typing-extensions
as a dependency - Forbids to use
quit
andexit
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 unusedelse
- Forbids variables self reassignment
- Forbids
try
withfinally
withoutexcept
- 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
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
andasync with
nesting level - We now check
async for
andasync 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
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
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
, andno
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
Features
- Adds
MultipleIfsInComprehensionViolation
- Adds
TooManyConditionsViolation
- Adds
--max-conditions
option
Misc
- Improves
CONTRIBUTING.md
- Moves issues templates to
.github/
folder
Version 0.0.14
Features
- Adds
WrongModuleNamePatternViolation
andWrongModuleNameUnderscoresViolation
- Adds
TooManyImportsViolation
error and--max-imports
option - Adds
--i-control-code
option to ignoreInitModuleHasLogicViolation
- Adds check for underscored numbers
- Forbids
u''
strings - Adds
noqa
andtype
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 withtokenize
- 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
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
This is just a supporting release.
There are no new features introduced.
We have changed the error codes for general checks.
Bugfixes
- Fixes bug with nested imports missing
parent
- Fixes bug with incorrect
pycodestyle
version - Removes
BareRaiseViolation
as it does not fit the purpose of this package
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
andrule-request
- Replaced
pytest-isort
withflake8-isort
Version 0.0.11
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
Features
- Adds
WrongModuleNameViolation
,WrongModuleMagicNameViolation
,
andTooShortModuleNameViolation
- 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 incorrecttype
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