wemake-services / wemake-python-styleguide

The strictest and most opinionated python linter ever!
https://wemake-python-styleguide.rtfd.io
MIT License
2.49k stars 380 forks source link

`WPS347` and `N811` rules conflict #3016

Open blablatdinov opened 1 month ago

blablatdinov commented 1 month ago

What's wrong

One char classes considered as constant

How it should be

We have import line: from django.models.db import F, we replaced it to from django.models.db import F as Func, thanks WPS347. But this line rejected by N811: N811 constant 'F' imported as non constant 'Func'

Flake8 version and plugins

{ "platform": { "python_implementation": "CPython", "python_version": "3.9.18", "system": "Darwin" }, "plugins": [ { "plugin": "darglint", "version": "1.8.1" }, { "plugin": "flake8-bandit", "version": "4.1.1" }, { "plugin": "flake8-broken-line", "version": "1.0.0" }, { "plugin": "flake8-bugbear", "version": "24.4.26" }, { "plugin": "flake8-commas", "version": "2.1.0" }, { "plugin": "flake8-comprehensions", "version": "3.14.0" }, { "plugin": "flake8-debugger", "version": "4.1.2" }, { "plugin": "flake8-docstrings", "version": "1.6.0" }, { "plugin": "flake8-eradicate", "version": "1.5.0" }, { "plugin": "flake8-isort", "version": "6.1.1" }, { "plugin": "flake8-quotes", "version": "3.4.0" }, { "plugin": "flake8-rst-docstrings", "version": "0.3.0" }, { "plugin": "flake8-string-format", "version": "0.3.0" }, { "plugin": "mccabe", "version": "0.7.0" }, { "plugin": "pep8-naming", "version": "0.13.3" }, { "plugin": "pycodestyle", "version": "2.11.1" }, { "plugin": "pyflakes", "version": "3.2.0" }, { "plugin": "wemake-python-styleguide", "version": "0.19.2" } ], "version": "7.0.0" }

pip information

aioredis==1.3.1 amqp==2.6.1 anyio==4.2.0 appnope==0.1.2 asgiref==3.5.0 astor==0.8.1 asttokens==2.0.5 async-timeout==4.0.2 attrs==21.4.0 autobahn==21.11.1 Automat==20.2.0 backcall==0.2.0 bandit==1.7.8 billiard==3.6.4.0 boltons==24.0.0 boto3==1.21.11 botocore==1.24.11 celery==4.4.7 certifi==2021.10.8 cffi==1.15.0 channels==3.0.4 channels-redis==3.4.0 chardet==4.0.0 click==8.0.4 constantly==15.1.0 coreapi==2.3.3 coreschema==0.0.4 coverage==6.4.4 cryptography==36.0.1 daphne==3.0.2 darglint==1.8.1 ddtrace==0.56.1 decorator==5.1.1 Deprecated==1.2.13 distro==1.7.0 Django==3.2.13 django-anymail==8.5 django-bootstrap3==21.2 django-cors-headers==3.1.0 django-debug-toolbar==3.2.4 django-environ==0.8.1 django-extensions==3.1.5 django-filter==2.2.0 django-recaptcha2==1.4.1 django-redis==5.1.0 django-split-settings==1.1.0 django-storages==1.12.3 djangorestframework==3.13.1 djangorestframework-jwt==1.11.0 docutils==0.21.2 drf-yasg==1.20.0 eradicate==2.0.0 exceptiongroup==1.2.0 execnet==1.9.0 executing==0.8.3 face==20.1.1 Faker==12.0.1 flake8==7.0.0 flake8-bandit==4.1.1 flake8-broken-line==1.0.0 flake8-bugbear==24.4.26 flake8-commas==2.1.0 flake8-comprehensions==3.14.0 flake8-debugger==4.1.2 flake8-docstrings==1.6.0 flake8-eradicate==1.5.0 flake8-isort==6.1.1 flake8-quotes==3.4.0 flake8-rst-docstrings==0.3.0 flake8-string-format==0.3.0 freezegun==1.1.0 gitdb==4.0.9 GitPython==3.1.27 glom==23.5.0 gunicorn==19.9.0 h11==0.13.0 hiredis==2.0.0 httpcore==1.0.2 httpx==0.25.2 hyperlink==21.0.0 idna==2.10 incremental==21.3.0 inflection==0.5.1 iniconfig==1.1.1 ipython==8.1.1 isort==5.10.1 itypes==1.2.0 jedi==0.18.1 Jinja2==3.0.3 jmespath==0.10.0 kombu==4.6.11 loguru==0.6.0 lxml==4.6.3 markdown-it-py==2.2.0 MarkupSafe==2.1.0 matplotlib-inline==0.1.3 mccabe==0.7.0 mdurl==0.1.2 mixer==7.2.1 msgpack==1.0.3 netaddr==0.8.0 ondivi==0.2.1 packaging==21.3 parso==0.8.3 pbr==6.0.0 pendulum==2.1.2 pep8-naming==0.13.3 pexpect==4.8.0 pickleshare==0.7.5 Pillow==8.2.0 pluggy==1.0.0 prompt-toolkit==3.0.28 protobuf==3.19.4 psycopg2-binary==2.9.3 ptyprocess==0.7.0 pure-eval==0.2.2 py==1.11.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycodestyle==2.11.1 pycparser==2.21 pydantic==1.9.0 pydocstyle==6.1.1 pyflakes==3.2.0 Pygments==2.11.2 PyJWT==1.7.1 pyOpenSSL==22.0.0 pyparsing==3.0.7 pysendpulse==0.1.2 pytest==6.2.5 pytest-cov==3.0.0 pytest-django==4.5.2 pytest-env==0.6.2 pytest-forked==1.4.0 pytest-freezegun==0.4.2 pytest-lazy-fixture==0.6.3 pytest-xdist==2.5.0 python-dateutil==2.8.2 python-telegram-bot==20.7 python3-memcached==1.51 pytz==2021.3 pytzdata==2020.1 PyYAML==6.0.1 redis==3.2.0 reportlab==3.5.67 requests==2.25.1 requests-mock==1.9.3 restructuredtext_lint==1.4.0 rich==13.2.0 ruamel.yaml==0.17.21 ruamel.yaml.clib==0.2.6 s3transfer==0.5.2 service-identity==21.1.0 six==1.16.0 smmap==5.0.0 sniffio==1.3.0 snowballstemmer==2.2.0 sqlparse==0.4.2 stack-data==0.2.0 stevedore==5.2.0 stories==4.0.0 tabulate==0.8.9 tenacity==8.0.1 toml==0.10.2 tomli==2.0.1 traitlets==5.1.1 transliterate==1.10.2 Twisted==22.8.0 txaio==22.2.1 typer==0.4.0 typing_extensions==4.1.1 ujson==4.3.0 uritemplate==4.1.1 urllib3==1.26.8 uvicorn==0.17.5 vine==1.3.0 wcwidth==0.2.5 websockets==10.2 wemake-python-styleguide==0.19.2 wrapt==1.13.3 yookassa==2.2.3 zope.interface==5.4.0

OS information

Macos ventura 13.2

blablatdinov commented 1 month ago

@sobolevn what is your opinion?