ITADN

False positive for WPS457 when using asyncio to control loops

#3573Openluminoso 创建于 2025-12-12
bughelp wantedlevel:startergood first issue
L
luminosocommented
### What's wrong For the code: ```python import asyncio async def infinite_loop() -> None: try: while True: await asyncio.sleep(1) print("I'm alive. And doing work.") except asyncio.CancelledError: print("Loop cancelled") t = asyncio.create_task(infinite_loop()) await asyncio.sleep(5) t.cancel() ``` WPS457: Found an infinite while loop is raised. But infinite loop is being handled. Just not within the while loop. ### How it should be Not to raise WPS457. Not 100% sure here if it is the best practice or not. Also probably the solution is too complex and is just easier to add a `noqa` in the code. ### Flake8 version and plugins ```json { "platform": { "python_implementation": "CPython", "python_version": "3.13.9", "system": "Linux" }, "plugins": [ { "plugin": "mccabe", "version": "0.7.0" }, { "plugin": "pycodestyle", "version": "2.14.0" }, { "plugin": "pyflakes", "version": "3.4.0" }, { "plugin": "wemake-python-styleguide", "version": "1.4.0" } ], "version": "7.3.0" } ``` ### pip information ``` pip 25.3 from /var/home/luminoso/.local/lib/python3.14/site-packages/pip (python 3.14) anyio==4.11.0 archspec==0.2.5 argcomplete==3.6.3 asttokens==3.0.0 attrs==25.4.0 boto3==1.42.4 botocore==1.42.4 Brlapi==0.8.7 Brotli==1.1.0 certifi==2025.7.9 charset-normalizer==3.4.3 click==8.1.7 conda==25.11.0 conda-package-handling==2.4.0 conda_package_streaming==0.11.0 cupshelpers==1.0 dasbus==1.7 dbus-python==1.4.0 decorator==5.2.1 distro==1.9.0 executing==2.2.1 fedora-third-party==0.10 file-magic==0.4.0 frozendict==2.4.6 gbinder-python==1.1.2 h11==0.16.0 httpcore==1.0.9 httpx==0.28.1 idna==3.10 ipython==8.37.0 jedi==0.19.2 jmespath==1.0.1 jsonpatch==1.33 jsonpointer==2.4 jsonschema==4.23.0 jsonschema-specifications==2024.10.1 langtable==0.0.69 louis==3.33.0 matplotlib-inline==0.1.7 menuinst==2.3.1 mercurial==7.1.1 mutagen==1.47.0 nftables==0.1 olefile==0.47 packaging==25.0 parso==0.8.5 pexpect==4.9.0 pillow==11.3.0 platformdirs==4.2.2 pluggy==1.6.0 progressbar2==4.5.0 prompt_toolkit==3.0.41 psutil==7.0.0 ptyprocess==0.7.0 pure_eval==0.2.3 PyAudio==0.2.13 pycairo==1.28.0 pyclip==0.7.0 pycosat==0.6.6 pycryptodomex==3.23.0 pycups==2.0.4 pyenchant==3.2.2 pygdbmi==0.11.0.0 Pygments==2.19.1 PyGObject==3.54.5 pyinotify==0.9.6 PySocks==1.7.1 python-dateutil==2.9.0.post0 python-linux-procfs==0.7.3 python-utils==3.9.1 pyudev==0.24.3 pyxdg==0.27 PyYAML==6.0.2 pyynl @ file:///builddir/build/BUILD/kernel-6.17.10-build/kernel-6.17.10/linux-6.17.10-300.fc43.x86_64/tools/net/ynl RapidFuzz==3.12.2 referencing==0.36.2 regex==2025.10.23 requests==2.32.5 rpds-py==0.27.0 rpm==6.0.0 rpmautospec==0.8.3 rpmautospec-core==0.1.5 ruamel.yaml==0.18.16 ruamel.yaml.clib==0.2.12 s3transfer==0.16.0 selinux @ file:///builddir/build/BUILD/libselinux-3.9-build/libselinux-3.9/src sentry-sdk==2.35.0 sepolicy @ file:///builddir/build/BUILD/policycoreutils-3.9-build/selinux-3.9/python/sepolicy setools==4.6.0 setuptools==78.1.1 six==1.17.0 sniffio==1.3.1 sos==4.10.1 stack_data==0.6.3 tqdm==4.67.1 traitlets==5.14.3 typing_extensions==4.15.0 urllib3==2.5.0 wcwidth==0.2.13 websockets==15.0.1 yt-dlp==2025.10.22 zstandard==0.25.0 ``` ### OS information ``` $ lsb_release -a LSB Version: n/a Distributor ID: Fedora Description: Fedora Linux 43.20251209.0 (Kinoite) Release: 43 Codename: n/a ```
5 条评论