wemake-services/
The strictest and most opinionated python linter ever!
USD raised
Recent activities
Add more plugins for editors and IDEs
Add a quick comparison table about pylint and black
Add a note about pylint
False positive for `variable is only used in return`
Add flake8-executable
Forbid compares like `False == False in [False]`
Force to use ternary instead of `and` and `or` chain
Ensure that `breakpoint()` is forbidden in our code
Consider merging mutliple `isinstance()` calls together
Consider using `in` instead of multiple `==`
Forbid to have data clump
Find similar / exact expressions in the source code
Consider adding flake8-rst-docstrings
Refactor how tree is visited
Find expressions like `if not number > 1:`
Not working due pydocstyle error
Forbid to have the same condition
Consider choosing `a < x < b` or `b > x > a`
Forbid `lambda x: len(x)`
Forbid `len(...) > 0` expressions
Forbid to have too many compares in one expression
Forbid to repeat instance variables on a class level
Running all intended tests should be possible by one shell command.
Forbid to use `if len(...):`
Enforce consistent octal, hex, and binary numbers
Forbid to use ternary inside `if` clause
Forbid useless `return` and `return None` at the end of the function
Forbid string concat with anything than other strings
Improve legacy guide
Force people to use `a > b > c` instead of `a > b and b > c`
Add a note about black configuration that works for us
Add explanation to all violation messages
Document jupyter integration
Release 0.9.1 with pydocstyle bugfix
Change violations number and groups
Ensure the order of methods inside a class
Forbid to use `in []` explicit checks
Document other auto-formatters such as yapf and autopep8
Document Wing plugin
Incorrect line number for Z331
Create `TooManyImportedNamesViolation`
Configure a custom domain name
Update mypy and enable `--warn-unreachable`
Forbid to use `raise StopIteration()` inside generators
Enhance README with opencollective and issuehunt
Force to use `for ... in (...):` instead of `for ... in [...]:`
Forbid to use `isinstance(some, (some,))`
Test that pipe lint works
Test that linting doctests work
Forbid to shadow outer scope variables with blocks
Forbid to use loop variables after loop's body
Add `--show-source` to default configuration
Tweak performance
Find packages with too many modules
Z331 raised twice
Do not count type annotations as strings
Incorrect error message when over-using empty string
Fix `Incorrect` vs `Wrong` in the violation names
InconsistentReturnVariableViolation is a bad rule.
Forbid magic methods to be async
Forbid to use `range(len(...))`, use `enumerate` instead
Forbid to use escape chars in regular strings, prefer `r` strings
Forbid expressions like `FIRST, FIRST = (1, 2)`
Forbid useless methods
Forbids binary strings with unicode escape chars
Change how "return" in "finally" works
Incompatible attrs version
Restrict to have general `*args, **kwargs`
Forbid self import
Forbid to use `type(...) == '...'`, use `isinstance` instead
Lint regex
Forbid properties with parameters
Why double quotes is bad?
Add docs about CI integrations
Add coala to the list of integrations
Forbid classes with too many public instance attributes
Forbid incorrect `__slots__` names
Change how we define `__slots__`
Forbid `else if` sequence
Forbid compares with `0` and `''`
Forbid `is` compare with constants
Forbid too many statements inside a try block
Forbid to use comprehensions in `for` declaration
Add xenon code quality check
Forbid `open()` not inside `with`
Make sure that `alias` raises an error if aliased attribute exists
Enable deepsource coverage
Add mypy and "Finds bad style?" to README
Consider adding xenon
Forbid to use `*[]`, `*()`, and `**{}` in calls
Change how `AsyncMagicMethodViolation` works
Make sure that we test `ast.Starred` more often
Check other magic methods not to be generators, not just `__init__`
Replace layers-linter with import-linter
Find overused expressions
Forbid getting known key from kwargs
Forbid too deep subscript and attribute usages
Forbid to use `while False` and equivalents
Document debugging process
Forbid too many `assert`s in a function
`{1, True, 1.0}` should be recognised as set with duplicates
Enforce a single way how to write complex numbers: `3j` vs `3J`
Find non-unique dict keys
Forbid expressions like `3 + -4`
Forbid to use `as _` naming style in blocks
Forbid `assert False` and equivalents
Do not allow to multiply lists
Forbid too deep attribute usages
Find `sum` candidates
Forbid to name variables as `__`, `___`, etc
Forbid to use ``__`` and ``___`` as unused variables
Forbid zero divison
Forbid to raise exceptions that are caught in except cases
Forbid name shadowing from different scopes
WPS115 (Found upper-case constant in a class) in enum.Enum.
Incorrect line number for WPS400
ValueError: malformed node or string
Document flakehell and improve legacy guide
Document nitpick and create sharable configurations
Create optional dependencies
Add flake8-pytest-style
Add `@final` decorator to the classes that need it
Local variables count does not work correctly
Consider adding `ignore` to nitpick styles
False positive `WPS417 Found non-unique item in hash: None`
Fix urls in nitpick docs
Add `reveal_type` to forbidden functions
Split the rule that checks using `*()`, `*[]` and `**{}` in calls into different rules
Sync mypy settings from returns
False positive for `WPS345 Found meaningless number operation`
Modulo operation with 0 and 1 is allowed
ยฉ 2019 BoostIO, Inc.