wemake-services/
The strictest and most opinionated python linter ever!
USD raised
Recent activities
Allow `/` in `WPS226`
`WPS226` false positive on fstring parts
Prefer if over match with single-case
Prefer if over match simple sequences and mappings
False positive for `WPS237`
Allow the walrus operator to be used in the while loop in WPS332
False positive for `WPS529`
Make sure that we forbid all f-string formatting
Remove WPS2xx rules that are managed by Ruff
Do not allow `TypeVarTuple` after `TypeVar` with a default
`WPS312` duplicates `PLR0124`
Allow UPPERCASE constants in `Enum` classes
`match` + `case` does not increase cognitive complexity
How to set up WPS (wemake-python-styleguide) autocheck in PyCharm
Allow custom short names
False positive WPS226 in f strings
Empty lines in method body
WPS318 wrong behaviour for func arguments
Bump flake8 to v5
reviewdog: PullRequest needs 'git' command: failed to run 'git rev-parse --show-prefix'
Link to documentation website does not work
Forbid chaining `is`
Enforce usage of built-in types in typing.
Exclude from the MagicNumberViolation check keyword arguments inside a constructor.
bandit==1.7.4 wps==0.15.3 TypeError: __init__() missing 1 required positional argument: 'metrics'
Incorrect detection of string constant overuse (WPS226)
WPS204: Overused expression should not count -1
Detect leaking `for` loops in `ClassDef` and `Module`
Forbid local variables that are referenced only one time
Take a closer look at perflint
Forbid tuples without parenthesis
Allow to return None without noqa
Forbid implicit slice
WPS472 only detecting one pure variable assignment
Document `darglint`'s performance issues
flake8-commas is archived
Forbid `print` statements
Detect the same `if` conditions
Add exception to WPS226 to allow commas and dots
We use `wemake_python_styleguide.options.defaults.FORBIDDEN_NOQA` when we should use `wemake_python_styleguide.options.defaults.FORBIDDEN_INLINE_IGNORE`
WPS503 on for ... else with except in loop
WPS437 forbids access to private attributes of the same class
Disallow Reassignment of Function Parameters
Wrong Getter and Setter example
False negative comprehension structure for `WPS361`
Stray WPS601 warning on class member reassignment
WPS237 Found a too complex `f` string - this may be too strict
Report bad collection creation
Forbid initializing 2 or more variables on one line
Enforce constants to be SCREAMING_SNAKE_CASE
Improve WPS323 diagnostics
Address review from @sindresorhus
InfiniteWhileLoopViolation should allow `try:`
Forbid single triple quotes
Detect missed trailing whitespace in concatenated messages
flake8-expression-complexity 0.0.9 breaks things
WPS434 in variables with different scopes
Detect redundant enumerate
Forbid os.curdir
annotation_node.slice.value, # type: ignore AttributeError: 'Tuple' object has no attribute 'value'
WPS412: Improve rationale
Make WPS428 configurable (Airflow example)
Forbid returning too long tuples
Report missed `functools.wraps` for decorators
TypeVar passed name and assigned name must match
Forbid `except TypeError or ValueError`
Custom exceptions must end with `Error`
WPS229 exception for CancelledError
WPS202 shouldn't fail in modules with test
Wrong copy paste in docs
Comments like `# type: ignore[override]` are not allowed
Improve .pyi files support
Forbids classes with too high coupling
Add `NamedExpr` template to name testing
Ensure that `WrongInCompareTypeViolation` counts `NamedExpr`
Ensure that `WrongIsCompareViolation` counts `NamedExpr`
Replace pkg_resources with importlib
Make `WPS113` respect `i_control_code` setting, again
Add `__call__` to list of methods that should be on top
Rule 442 conflicts with pytest fixtures usage
Make sure we treat tests differently
WPS331 doesn't make sense if additional work needs to be done
Multiple excepts raising 440/441
WPS425 boolean non-keyword argument clashes with setdefault
flake8 versions prior 3.7.8 fails to process nested classes whitelist option
Enforce using `.setdefault()`
Forbid explicit step in slice
Eval boolean operations
Small typo in docs/pages/usage/integrations/pylint.rst
Warn about possibly infinite `while`
Problem with BooleanPositionalArgumentViolation
Add separate test for violations controlled by `i_control_code` option
Update mypy version
`super()` with other methods and properties
Forbid mutable class fields
Outdated information about black incompatibilities
Forbid `[0:x]` and `[1:None]`, prefer `[:x]` and `[1:]`
Forbid `Optional[Union[A, B]]`, use `Union[A, B, None]` instead
Detect when str method is called as property
Forbid slow `in` inside comprehensions
Forbid a[len(a)-1]
I_CONTROL_CODE setting is not respected for BadMagicModuleFunctionViolation
Setup rebase pipeline
Forbid to use `Literal[None]`
Forbid multi-line for and while loops
Forbid nested comprehensions
Add wemake-python-styleguide to awesome-python
Forbid too deep subscript usages
Forbid magic methods to be async
Do not allow to yield too long tuples
Do not allow to subclass builtins
Create "Too many await" complexity rule
"Z454 Found incorrect base class" on Generic classes
New metric: dynamic complexity
© 2019 BoostIO, Inc.