wemake-python-styleguide icon indicating copy to clipboard operation
wemake-python-styleguide copied to clipboard

WPS461 breaks when more than one code is configured

Open bolmstedt opened this issue 2 years ago • 1 comments

What's wrong

The forbidden-inline-ignore option is parsed from a comma-separated string into a tuple, but the code itself joins all codes using an empty string, then tries to split them on comma. The tests pass, because they pass strings with comma separated values instead of a tuple with values.

How it should be

Just like other multiple value configurations , like nested-classes-whitelist, this rule needs to iterate over the items in the tuple, not try to do some additional handling, because the config values are already parsed.

Flake8 version and plugins

{ "platform": { "python_implementation": "CPython", "python_version": "3.11.2", "system": "Linux" }, "plugins": [ { "plugin": "darglint", "version": "1.8.1" }, { "plugin": "flake8-bandit", "version": "4.1.1" }, { "plugin": "flake8-broken-line", "version": "0.6.0" }, { "plugin": "flake8-bugbear", "version": "22.10.27" }, { "plugin": "flake8-commas", "version": "2.1.0" }, { "plugin": "flake8-comprehensions", "version": "3.10.1" }, { "plugin": "flake8-debugger", "version": "4.1.2" }, { "plugin": "flake8-docstrings", "version": "1.6.0" }, { "plugin": "flake8-eradicate", "version": "1.4.0" }, { "plugin": "flake8-isort", "version": "5.0.0" }, { "plugin": "flake8-pytest-style", "version": "1.6.0" }, { "plugin": "flake8-quotes", "version": "3.3.1" }, { "plugin": "flake8-rst-docstrings", "version": "0.3.0" }, { "plugin": "flake8-string-format", "version": "0.3.0" }, { "plugin": "mccabe", "version": "0.7.0" }, { "plugin": "nitpick", "version": "0.29.0" }, { "plugin": "pep8-naming", "version": "0.13.2" }, { "plugin": "pycodestyle", "version": "2.9.1" }, { "plugin": "pyflakes", "version": "2.5.0" }, { "plugin": "wemake-python-styleguide", "version": "0.17.0" } ], "version": "5.0.4" }

pip information

pip 23.0.1 from /root/.cache/pypoetry/virtualenvs/wemake-python-styleguide-MATOk_fk-py3.11/lib/python3.11/site-packages/pip (python 3.11) astor==0.8.1 astpath==0.9.0 attrs==22.1.0 autopep8==1.7.0 autorepr==0.3.0 backcall==0.2.0 bandit==1.7.4 cachy==0.3.0 certifi==2022.9.24 charset-normalizer==2.1.1 click==8.1.3 ConfigUpdater==3.1.1 coverage==6.5.0 coverage-conditional-plugin==0.5.0 darglint==1.8.1 decorator==5.1.1 dictdiffer==0.9.0 doc8==0.11.2 docutils==0.19 dparse==0.6.2 eradicate==2.1.0 fastdiff==0.3.0 flake8==5.0.4 flake8-bandit==4.1.1 flake8-broken-line==0.6.0 flake8-bugbear==22.10.27 flake8-commas==2.1.0 flake8-comprehensions==3.10.1 flake8-debugger==4.1.2 flake8-docstrings==1.6.0 flake8-eradicate==1.4.0 flake8-isort==5.0.0 flake8-plugin-utils==1.3.2 flake8-pytest-style==1.6.0 flake8-quotes==3.3.1 flake8-rst-docstrings==0.3.0 flake8-string-format==0.3.0 gitdb==4.0.9 GitPython==3.1.28 grimp==2.0 hypothesis==6.56.1 hypothesmith==0.2.0 identify==2.5.6 idna==3.4 import-linter==1.4.0 iniconfig==1.1.1 ipython==7.34.0 isort==5.10.1 jedi==0.18.1 jmespath==1.0.1 lark-parser==0.12.0 libcst==0.4.7 loguru==0.6.0 lxml==4.9.1 marshmallow==3.18.0 marshmallow-polyfield==5.10 matplotlib-inline==0.1.6 mccabe==0.7.0 more-itertools==8.14.0 mypy==0.982 mypy-extensions==0.4.3 nbqa==1.5.2 nitpick==0.29.0 packaging==21.3 parso==0.8.3 pbr==5.10.0 pep8-naming==0.13.2 pexpect==4.8.0 pickleshare==0.7.5 pluggy==1.0.0 prompt-toolkit==3.0.31 ptyprocess==0.7.0 py==1.11.0 pycodestyle==2.9.1 pydantic==1.10.2 pydocstyle==6.1.1 pyflakes==2.5.0 Pygments==2.14.0 pyparsing==3.0.9 pytest==7.1.3 pytest-cov==3.0.0 pytest-randomly==3.12.0 python-slugify==6.1.2 PyYAML==6.0 requests==2.28.1 restructuredtext-lint==1.4.0 ruamel.yaml==0.17.21 safety==2.3.1 six==1.16.0 smmap==5.0.0 snapshottest==0.6.0 snowballstemmer==2.2.0 sortedcontainers==2.4.0 stevedore==3.5.0 termcolor==2.0.1 text-unidecode==1.3 tokenize-rt==5.0.0 toml==0.10.2 tomli==2.0.1 tomlkit==0.11.5 traitlets==5.4.0 typing-inspect==0.8.0 typing_extensions==4.4.0 urllib3==1.26.12 wasmer==1.1.0 wasmer-compiler-cranelift==1.1.0 wcwidth==0.2.5 -e git+ssh://[email protected]/bolmstedt/wemake-python-styleguide.git@936715d5306508aed51938afc27a1f0c2e2281da#egg=wemake_python_styleguide

OS information

Debian GNU/Linux 11 (bullseye) 5.10.124-linuxkit

bolmstedt avatar Mar 15 '23 16:03 bolmstedt

Fixed by #2591.

bolmstedt avatar Mar 15 '23 17:03 bolmstedt