https://github.com/wemake-services/wemake-python-styleguide/issues/3397
#ast #wemake_python_styleguide
#ast #wemake_python_styleguide
GitHub
WPS432 should ignore literal types · Issue #3397 · wemake-services/wemake-python-styleguide
Rule request (I am not sure whether this is a bug or a rule request, sorry if I picked the wrong one.) Thesis WPS432 currently is applied to magic numbers within literal types. foobar: Literal[9001...
https://github.com/wemake-services/wemake-python-styleguide/issues/3404
#ast #wemake_python_styleguide
#ast #wemake_python_styleguide
GitHub
Forbid comments in `f` and `t` string · Issue #3404 · wemake-services/wemake-python-styleguide
This code should raise a violation: >>> x = f'{ 1 # comment ... }' Because comments make f string implicilty multiline. And comments must not be present in strings. This is not right.
👍1
https://github.com/wemake-services/wemake-python-styleguide/issues/3413
#wemake_python_styleguide #ast
#wemake_python_styleguide #ast
GitHub
WPS212 counts return-statements from inner definitions · Issue #3413 · wemake-services/wemake-python-styleguide
What's wrong def foobar() -> Any: def inner_func(x: Any) -> Any: return x class Foobar: def __init__(self: Self): self.x = 1 def get_x(self: Self) -> int: return self.x return inner_fu...
https://github.com/wemake-services/wemake-python-styleguide/issues/3458
#python #wemake_python_styleguide #ast
#python #wemake_python_styleguide #ast
GitHub
Forbid "fat" finally · Issue #3458 · wemake-services/wemake-python-styleguide
Rule request Allow finally block to have simple content only. It can contain few lines of code, but it shouldn't contain untrivial logic, which can not be understand very quickly at code readin...
😭5❤2
https://github.com/wemake-services/wemake-python-styleguide/issues/2340
#wemake_python_styleguide #ast
#wemake_python_styleguide #ast
GitHub
Detect leaking `for` loops in `ClassDef` and `Module` · Issue #2340 · wemake-services/wemake-python-styleguide
Right now we can have two problems: class Some(object): for x in [1, 2]: print(x) print(Some.x) # oups, will show you `2` and with modules: # some.py for x in [1, 2]: print(x) # __main__ import som...
👍3❤1
https://github.com/wemake-services/wemake-python-styleguide/issues/3493
#ast #wemake_python_styleguide
#ast #wemake_python_styleguide
GitHub
Make `WPS222` configurable · Issue #3493 · wemake-services/wemake-python-styleguide
Currently we use MAX_CONDITIONS: Final = 4 as a constant in constants.py. There's no way to configure MAX_CONDITIONS. However, there might be projects where 5 or even 8 might be reasonable. So,...
👎1
https://github.com/wemake-services/wemake-python-styleguide/issues/3500
#ast #wemake_python_styleguide
#ast #wemake_python_styleguide
GitHub
Allow set comprehensions in `WPS335` · Issue #3500 · wemake-services/wemake-python-styleguide
We don't allow list and set to be used as iterable parts of for, because we only allow tuples there. We need to allow SetComp in for iterable: 118:22 WPS335 Found incorrect `for` loop iter type...
Не самая простая задача, но прикольная: https://github.com/wemake-services/wemake-python-styleguide/issues/3501
Подойдет тем, кто уже делает не первый PR :)
#ast #wemake_python_styleguide
Подойдет тем, кто уже делает не первый PR :)
#ast #wemake_python_styleguide
GitHub
False positive for `WPS529` · Issue #3501 · wemake-services/wemake-python-styleguide
Code like this def func(**kwargs): if 'a' in kwargs: assert 'a_kwargs' not in kwargs else: kwargs['a'] = other( **kwargs.pop('a_kwargs', {}), ) raises WPS529 I don&#...
https://github.com/wemake-services/wemake-python-styleguide/issues/3506
Поправить описание того, что мы считаем "сложным" кодом внутри
#wemake_python_styleguide #docs
Поправить описание того, что мы считаем "сложным" кодом внутри
f строк#wemake_python_styleguide #docs
GitHub
False positive for `WPS237` · Issue #3506 · wemake-services/wemake-python-styleguide
What's wrong I encountered this error in one of my functions for a game on Pygame, and after reviewing the WPS documentation, I believe it is a false positive. Please review the function yourse...
🚀 New issue to wemake-services/wemake-python-styleguide by @luminoso
📝 False positive for WPS457 when using asyncio to control loops (#3573)
What's wrong
For the code:
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
Flake8 version and plugins
pip information
OS information
#bug #help_wanted #levelstarter #good_first_issue #wemake_python_styleguide #wps
sent via relator
📝 False positive for WPS457 when using asyncio to control loops (#3573)
What's wrong
For the code:
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
{
"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
#bug #help_wanted #levelstarter #good_first_issue #wemake_python_styleguide #wps
sent via relator
❤1