🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Unskip `test_msgspec` files on 3.14 with new released version (#334)
We need a PR with the fix that removes all
#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
📝 Unskip `test_msgspec` files on 3.14 with new released version (#334)
msgspec@0.20.0 is out and updated in #333. Now all tests in test_plugins/test_msgpspec can be executed on 3.14 as well.We need a PR with the fix that removes all
pytest.skip directives for 3.14 from these files.#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
Добавляем типы для django 6.0!
https://github.com/typeddjango/django-stubs/issues/2944
#typing #django_stubs
https://github.com/typeddjango/django-stubs/issues/2944
#typing #django_stubs
GitHub
CALL TO ACTION: Adding Django 6.0 stubs · Issue #2944 · typeddjango/django-stubs
🚀 Adding Django 6.0 stubs We have just updated to Django 6.0 in django-stubs test suite, but most new APIs are still missing stubs coverage, and changes to existing APIs are not covered. If you hav...
🔥2❤1
🚀 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
Denoscription: 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
🚀 New issue to ag2ai/faststream by @esinevgeny
📝 Bug: ValueError while calling redis client.xautoclaim (#2736)
Describe the bug
ValueError while calling xautoclaim
How to reproduce
Use the next route and launch the faststream, if there are messages with PENDING status in stream the issue will be observed
Actual
Traceback (most recent call last):
File "/venv/lib64/python3.12/site-packages/faststream/redis/subscriber/usecases/basic.py", line 91, in _consume
await self._get_msgs(*args)
File "/venv/lib64/python3.12/site-packages/faststream/redis/subscriber/usecases/stream_subscriber.py", line 341, in _get_msgs
for stream_name, msgs in await read(self.last_id):
^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib64/python3.12/site-packages/faststream/redis/subscriber/usecases/stream_subscriber.py", line 140, in read
(next_id, messages, _) = stream_message
^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 3, got 2)
Environment
Running FastStream 0.6.5 with CPython 3.12.11 on Linux
redis 7.1.0
Also checked on redis 5.3.0
#bug #good_first_issue #faststream #ag2ai
sent via relator
📝 Bug: ValueError while calling redis client.xautoclaim (#2736)
Describe the bug
ValueError while calling xautoclaim
How to reproduce
Use the next route and launch the faststream, if there are messages with PENDING status in stream the issue will be observed
@broker.subscriber(
stream=StreamSub("test:test", group="workers",
consumer="worker",
min_idle_time=5000)
)
async def worker(msg: RedisStreamMessage, redis: Redis):
logger.error(f"Claim {msg.correlation_id}")
await msg.ack(redis=redis, group="workers")
Actual
Traceback (most recent call last):
File "/venv/lib64/python3.12/site-packages/faststream/redis/subscriber/usecases/basic.py", line 91, in _consume
await self._get_msgs(*args)
File "/venv/lib64/python3.12/site-packages/faststream/redis/subscriber/usecases/stream_subscriber.py", line 341, in _get_msgs
for stream_name, msgs in await read(self.last_id):
^^^^^^^^^^^^^^^^^^^^^^^^
File "/venv/lib64/python3.12/site-packages/faststream/redis/subscriber/usecases/stream_subscriber.py", line 140, in read
(next_id, messages, _) = stream_message
^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 3, got 2)
Environment
Running FastStream 0.6.5 with CPython 3.12.11 on Linux
redis 7.1.0
Also checked on redis 5.3.0
#bug #good_first_issue #faststream #ag2ai
sent via relator
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Support `pyrefly` (#367)
https://pyrefly.org is already quite stable.
We use it in https://github.com/typeddjango/django-stubs/blob/master/pyrefly.toml with no major complains.
I really want to add this in CI as soon as possible.
#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
📝 Support `pyrefly` (#367)
https://pyrefly.org is already quite stable.
We use it in https://github.com/typeddjango/django-stubs/blob/master/pyrefly.toml with no major complains.
I really want to add this in CI as soon as possible.
#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
🤯5😱2
последний релиз
продолжаем добавлять поддержку django@6.0. нужна ваша помощь!
https://github.com/typeddjango/django-stubs/releases/tag/5.2.9
#typing #django_stubs
django-stubs для lts версий 5.2 вышел!продолжаем добавлять поддержку django@6.0. нужна ваша помощь!
https://github.com/typeddjango/django-stubs/releases/tag/5.2.9
#typing #django_stubs
GitHub
Release 5.2.9 · typeddjango/django-stubs
Version 5.2.9 will be the last version to target Django 5.2 -- the next version will be updating to 6.0!
🚀 We need your help: Adding Django 6.0 stubs
Many new Django 6.0 APIs are still missing stub...
🚀 We need your help: Adding Django 6.0 stubs
Many new Django 6.0 APIs are still missing stub...
🔥6❤2
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Create `json_dumps` internal helper (#383)
We have to dump
django-modern-rest/django_modern_rest/openapi/renderers/base.py
Lines 16 to 31 in 9e6132e
But, right now we don't use
So, let's create a new
#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
📝 Create `json_dumps` internal helper (#383)
We have to dump
json in some internal places of our code:django-modern-rest/django_modern_rest/openapi/renderers/base.py
Lines 16 to 31 in 9e6132e
But, right now we don't use
msgspec there if it is available. But, we should :)So, let's create a new
internal/json file and make a helper there. Then use it in base.py#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
Необходимо добавить метаинформацию в новые исключения, которые кидаются при построенни графа зависимостей и были добавлены в связи с реализацией новой фичи активации провайдеров.
https://github.com/reagento/dishka/issues/643
#dishka
https://github.com/reagento/dishka/issues/643
#dishka
GitHub
Dependency source info in activation errors · Issue #643 · reagento/dishka
In #632 there were introduced new error types related to activation. These errors lack metainformation about the place of their origin: factories/decorators. NoActivatorError InvalidMarkerError We ...
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Test that `HttpResponseRedirect` works and provide `APIRedirect` exception (#107)
We have a TODO item for redirects:
django-modern-rest/django_modern_rest/controller.py
Line 187 in be877dc
DRF uses regular
We need to test that we also can return
In
See the original implementation of
Make sure that
@Peopl3s are you interested? This is a nice beginner-friendly task :)
#enhancement #help_wanted #django_modern_rest
sent via relator
📝 Test that `HttpResponseRedirect` works and provide `APIRedirect` exception (#107)
We have a TODO item for redirects:
django-modern-rest/django_modern_rest/controller.py
Line 187 in be877dc
DRF uses regular
HttpResonseRedirect and it seems to work well.We need to test that we also can return
HttpResponseRedirect in @validate endpoints.In
@modify endpoints we should better provide a helper called APIRedirect which should be a subclass of APIError with location field.See the original implementation of
HttpRedirectResponse here https://github.com/django/django/blob/ca3e0484ef31d13053af6a9d50667813e22fc282/django/http/response.py#L628-L653Make sure that
preserve_request also works.@Peopl3s are you interested? This is a nice beginner-friendly task :)
#enhancement #help_wanted #django_modern_rest
sent via relator
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Negotiate response renderer as soon as possible (#402)
I think that it would be fair not to do anything if we can't find a renderer for the response.
It is better than we do it right now, when we finish all the business logic, just to find out that we can't show a proper response.
We should move
Maybe here?
django-modern-rest/django_modern_rest/endpoint.py
Lines 148 to 150 in 697c348
We should also add a test case that endpoint logic is not executed if there's something wrong with the negotiation.
#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
📝 Negotiate response renderer as soon as possible (#402)
I think that it would be fair not to do anything if we can't find a renderer for the response.
It is better than we do it right now, when we finish all the business logic, just to find out that we can't show a proper response.
We should move
response_negotiator call before the actual endpoint execution.Maybe here?
django-modern-rest/django_modern_rest/endpoint.py
Lines 148 to 150 in 697c348
We should also add a test case that endpoint logic is not executed if there's something wrong with the negotiation.
#enhancement #good_first_issue #help_wanted #django_modern_rest
sent via relator
🚀 New issue to wemake-services/django-modern-rest by @sobolevn
📝 Fix `Sequence[SyncAuth | AsyncAuth]` to be `Sequence[SyncAuth] | Sequence[AsyncAuth]` (#408)
I've made a mistake in
django-modern-rest/django_modern_rest/endpoint.py
Line 411 in 65d7638
I used
Here's the difference: https://mypy-play.net/?mypy=latest&python=3.12&flags=strict&gist=487fad8c5bdaa2e7d2b4e84a3fa25a6d
We need to fix the typings of
This issue is created for people who make their first (!) contribution :)
Please, let them feel welcome!
#bug #good_first_issue #help_wanted #django_modern_rest
sent via relator
📝 Fix `Sequence[SyncAuth | AsyncAuth]` to be `Sequence[SyncAuth] | Sequence[AsyncAuth]` (#408)
I've made a mistake in
modify and validate typing:django-modern-rest/django_modern_rest/endpoint.py
Line 411 in 65d7638
I used
Sequence[SyncAuth | AsyncAuth] instead of Sequence[SyncAuth] | Sequence[AsyncAuth].Here's the difference: https://mypy-play.net/?mypy=latest&python=3.12&flags=strict&gist=487fad8c5bdaa2e7d2b4e84a3fa25a6d
We need to fix the typings of
@modify and @validate and add a typesafety/ test that providing both sync and async auth at the same time is a type error.This issue is created for people who make their first (!) contribution :)
Please, let them feel welcome!
#bug #good_first_issue #help_wanted #django_modern_rest
sent via relator
🚀 New issue to wemake-services/wemake-python-styleguide by @sobolevn
📝 False positive for `WPS430` with whitelisted name (#3589)
This code falsy raises two
But, the name is correct.
We need to fix it and add a test case.
#bug #help_wanted #levelstarter #good_first_issue #wemake_python_styleguide #wps
sent via relator
📝 False positive for `WPS430` with whitelisted name (#3589)
def wrap_handler(
method: _MethodSyncHandler | _MethodAsyncHandler,
) -> SyncErrorHandlerT | AsyncErrorHandlerT:
if inspect.iscoroutinefunction(method):
@wraps(method)
async def decorator(
endpoint: 'Endpoint',
controller: 'Controller[BaseSerializer]',
exc: Exception,
) -> HttpResponse:
return await method( # type: ignore[no-any-return]
controller.active_blueprint,
endpoint,
controller,
exc,
)
else:
@wraps(method)
def decorator(
endpoint: 'Endpoint',
controller: 'Controller[BaseSerializer]',
exc: Exception,
) -> HttpResponse:
return method( # type: ignore[return-value]
controller.active_blueprint,
endpoint,
controller,
exc,
)
return decorator
This code falsy raises two
WPS430 violations.69:9 WPS430 Found nested function: factory
async def factory(
^
84:9 WPS430 Found nested function: factory
def factory(
^
But, the name is correct.
decorator name is in whitelist of names. This is a false positive.We need to fix it and add a test case.
#bug #help_wanted #levelstarter #good_first_issue #wemake_python_styleguide #wps
sent via relator