wemake-services/
The strictest and most opinionated python linter ever!
USD raised
Recent activities
false positive WPS526
WPS434 false positive when unpacking
`WPS347` and `N811` rules conflict
Docstring errors reported on the line after the comment in certain cases
WPS474 False Positive
Drop the abandoned `flake8-commas` plugin from deps
WPS331 should recommend the opposite
WPS221 wrong case
Too many exceptions in one `except`
Do we still need `fix_line_number`?
Better detect literal nodes with `wps_op_eval`
Remove usage of deprecated nodes: `ast.Num`, `ast.Str`, `ast.Bytes`, etc
How to set up WPS (wemake-python-styleguide) autocheck in PyCharm
Disallow suppressing CancelledError
False positive WPS441
Pydocstyle is no longer maintained
Gihub Action: Unable to process file command 'output' successfully.
Ignoring the absence of a new line between methods
Add flake8-noqa
False positive WPS417
WPS356 (unnecessary iterable unpacking) incompatible with Variadic Generics
Forbid coroutines usage as boolean conditions
Possible use for `pass`
Port `flake-commas`
False positive WPS323 with logging configuration
WPS432 should ignore numbers used as keyword arguments
WPS461 breaks when more than one code is configured
False positive WPS323 for date/datetime f-string formatting
Allow custom short names
False positive WPS226 in f strings
Allow to use `assert` outside `pytest.raises` block
Allow str + Enum for WPS600 Forbid subclassing lowercase builtins.
Offer built-in rules standalone
Empty lines in method body
WPS318 wrong behaviour for func arguments
Bump flake8 to v5
Software license (flake8-isort has gpl)
WPS612 false positive for keyword arguments with different default values
setup.cfg ignored when using GitHub action in subfolder
WSP111 is very strict for list compreh
reviewdog: PullRequest needs 'git' command: failed to run 'git rev-parse --show-prefix'
Link to documentation website does not work
WPS230 triggers for @dataclass
Forbid chaining `is`
Recommend using a.removeprefix(b) instead of a[len(b):]
ListMultiplyViolation link is incorrect and explanation is misleading
Enforce usage of built-in types in typing.
False Positive WPS316 Parenthesized context managers
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'
WPS211: Ignore self and cls
Incorrect detection of string constant overuse (WPS226)
433: Import under try
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
flake8-commas no longer maintained
Forbid `print` statements
Detect the same `if` conditions
Only show recommendations for files changed in a PR
Allow hasattr() function
Add exception to WPS226 to allow commas and dots
false positive in wps361 , inconsistently structured comprehension
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`
WPS335 rejects list-of-lists comprehensions
@Overload stubs are flagged with to many args(WPS211) and useless statement(WPS428)
Check that generator expressions are safe
Require specifying encoding when using "open" (re: PEP597)
Stray WPS601 warning on class member reassignment
WPS237 Found a too complex `f` string - this may be too strict
Report redundant str() and repr() for str.format args
Report bad collection creation
Enforce consistent ternary expressions
Forbid initializing 2 or more variables on one line
Windows 10 Tests Failed
Forbid types in variable name
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
FlakeHell was archived
Forbid os.curdir
annotation_node.slice.value, # type: ignore AttributeError: 'Tuple' object has no attribute 'value'
SystemExit and sys.exit behavior overlap
WPS412: Improve rationale
Rule exceptions for typing stubs
Support SARIF format
Make WPS428 configurable (Airflow example)
Forbid assigning `lambda` to object properties
Forbid returning too long tuples
Report missed `functools.wraps` for decorators
Report useless ternary operator
TypeVar passed name and assigned name must match
Forbid map/filter with lambda
Forbid `await` in `for` loop
Forbid `except TypeError or ValueError`
Bad English writing
Custom exceptions must end with `Error`
WPS229 exception for CancelledError
WPS436 for current project's module
WPS440/441 on multiple loops
WPS202 shouldn't fail in modules with test
WPS432 should preserve the literal representation
WPS440 is wrong in compat shim modules
Enforce `x`, `x1`,` x2` naming consistency
Forbid to mix several argument types
Wrong copy paste in docs
Create `.. plugincodes` sphinx directive
Enforce consistency with tuple brackets
--cache support
Comments like `# type: ignore[override]` are not allowed
Improve .pyi files support
Explain our principles better
Announce 0.15 release on ProductHunt
Forbid implicit `all` or `any` pattern
Forbids classes with too high coupling
Check for ssh/amazon keys, diffs and other patterns in string variables
Forbid implicit `enumerate` calls
Add `NamedExpr` template to name testing
Ensure that `WrongInCompareTypeViolation` counts `NamedExpr`
Ensure that `WrongIsCompareViolation` counts `NamedExpr`
Replace pkg_resources with importlib
Enforce consistency in single element tuple
Forbid to use `some .method()`
Make `WPS113` respect `i_control_code` setting, again
Add `__call__` to list of methods that should be on top
Make sure we treat tests differently
Rule 442 conflicts with pytest fixtures usage
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
Create pull-requests to python-anti-patterns with links to our docs
Enforce using `.setdefault()`
Forbid explicit step in slice
Comparison of tools
Eval boolean operations
Small typo in docs/pages/usage/integrations/pylint.rst
Enforce stricter slice operations
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 to use variables from conditional blocks
Forbid magic methods to be async
Support Codacy
Build codeclimate engine to be used with their platform
Playground link maybe?
Create "Funding roadmap"
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
Z317 incorrect multi-line parameters in nested data types
New metric: dynamic complexity
Brackets that come under each other should not pass
Feature: find extra parentheses that can be removed
Forbid unused `noqa` comments
© 2019 BoostIO, Inc.