Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
18564e9
Refactor ClientRequest
Dreamsorcerer May 25, 2025
f4d733f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 25, 2025
22d724a
Add kwargs
Dreamsorcerer May 25, 2025
6fa8996
Merge branch 'clientrequest-refactor' of github.com:aio-libs/aiohttp …
Dreamsorcerer May 25, 2025
8257048
Tweaks
Dreamsorcerer May 25, 2025
7171e0a
Fix
Dreamsorcerer May 25, 2025
9023653
Fix
Dreamsorcerer May 25, 2025
6a1e81a
Fix benchmarks
Dreamsorcerer May 25, 2025
ef47363
Fix benchmarks
Dreamsorcerer May 25, 2025
477d52d
Remove unneeded code
Dreamsorcerer May 25, 2025
8fbac96
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 25, 2025
cb5f104
Fix
Dreamsorcerer May 25, 2025
3820c39
Merge branch 'clientrequest-refactor' of github.com:aio-libs/aiohttp …
Dreamsorcerer May 25, 2025
2559a0b
Merge branch 'master' into clientrequest-refactor
Dreamsorcerer May 25, 2025
19dfe3a
Readd shortcut
Dreamsorcerer May 25, 2025
580387b
Merge branch 'clientrequest-refactor' of github.com:aio-libs/aiohttp …
Dreamsorcerer May 25, 2025
0cdf184
Tweaks
Dreamsorcerer May 25, 2025
ecc6dac
Merge branch 'master' into clientrequest-refactor
Dreamsorcerer Aug 24, 2025
c338a6d
Reduce diff
Dreamsorcerer Aug 24, 2025
b12ebae
Update client_reqrep.py
Dreamsorcerer Aug 25, 2025
b95493c
Update client_reqrep.py
Dreamsorcerer Aug 25, 2025
e4cc1dc
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 25, 2025
be3299c
Fixes
Dreamsorcerer Aug 26, 2025
ca57cab
Fixes
Dreamsorcerer Aug 27, 2025
4b93f0f
Create fixture
Dreamsorcerer Aug 28, 2025
7666c36
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 28, 2025
0332916
Fixes
Dreamsorcerer Aug 28, 2025
500a4fb
Fixes
Dreamsorcerer Aug 28, 2025
f4ebcb7
Fixes
Dreamsorcerer Aug 28, 2025
15a0fa8
Fixes
Dreamsorcerer Aug 28, 2025
deec35d
Fixes
Dreamsorcerer Aug 28, 2025
8f462a2
Fixes
Dreamsorcerer Aug 28, 2025
c20f2ce
Fixes
Dreamsorcerer Aug 28, 2025
28f1369
Fixes
Dreamsorcerer Aug 28, 2025
77137bf
Update conftest.py
Dreamsorcerer Aug 31, 2025
23029d2
Update conftest.py
Dreamsorcerer Aug 31, 2025
0a5651b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 31, 2025
03e5abf
Update client_reqrep.py
Dreamsorcerer Aug 31, 2025
39aa3f2
Update test_client_request.py
Dreamsorcerer Aug 31, 2025
e4f0eb4
Update test_client_request.py
Dreamsorcerer Aug 31, 2025
da1e507
Update client_reqrep.py
Dreamsorcerer Aug 31, 2025
2989a2c
Update test_client_request.py
Dreamsorcerer Aug 31, 2025
8c95f70
Update test_client_request.py
Dreamsorcerer Aug 31, 2025
6f5011e
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 31, 2025
ddb67a5
Merge branch 'master' into clientrequest-refactor
Dreamsorcerer Oct 14, 2025
a823273
Update client_reqrep.py
Dreamsorcerer Oct 14, 2025
ddc69ad
Update client_reqrep.py
Dreamsorcerer Oct 14, 2025
13db9c9
Update client_reqrep.py
Dreamsorcerer Oct 14, 2025
dd207ec
Fixes
Dreamsorcerer Oct 14, 2025
d1aadac
Fixes
Dreamsorcerer Oct 14, 2025
399ad18
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2025
52e3776
Fixes
Dreamsorcerer Oct 14, 2025
7c7af5d
Merge branch 'clientrequest-refactor' of github.com:aio-libs/aiohttp …
Dreamsorcerer Oct 14, 2025
583eca6
Fixes
Dreamsorcerer Oct 14, 2025
1c82693
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 14, 2025
54e9ee7
Update test_proxy.py
Dreamsorcerer Oct 15, 2025
89f6de2
Merge branch 'master' into clientrequest-refactor
Dreamsorcerer Oct 15, 2025
4c8df69
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 15, 2025
57e84cc
Fixes
Dreamsorcerer Oct 15, 2025
861fa1a
Fixes
Dreamsorcerer Oct 15, 2025
4895d27
Fixes
Dreamsorcerer Oct 15, 2025
3bb91ca
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 15, 2025
e929ff5
Fixes
Dreamsorcerer Oct 15, 2025
6145b46
Merge branch 'clientrequest-refactor' of github.com:aio-libs/aiohttp …
Dreamsorcerer Oct 15, 2025
157be4d
Fixes
Dreamsorcerer Oct 15, 2025
1d542e6
Fixes
Dreamsorcerer Oct 15, 2025
6855d0a
Fixes
Dreamsorcerer Oct 15, 2025
61f9aa7
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 15, 2025
cb9ec6e
Fixes
Dreamsorcerer Oct 15, 2025
f1549ea
Fixes
Dreamsorcerer Oct 15, 2025
c392b49
Create 11012.breaking.rst
Dreamsorcerer Oct 15, 2025
f19ab2a
solve one perf regression
bdraco Oct 18, 2025
9eceeef
build request info once
bdraco Oct 18, 2025
238096f
lazy construct RequestInfo
bdraco Oct 18, 2025
5780c0a
Update CHANGES/11012.breaking.rst
Dreamsorcerer Oct 19, 2025
fec5fef
str annotations
Dreamsorcerer Oct 19, 2025
9c0fa1c
Update aiohttp/client_reqrep.py
Dreamsorcerer Oct 24, 2025
101fab3
Remove request_info parameter
Dreamsorcerer Oct 24, 2025
8a33e42
Update tests
Dreamsorcerer Oct 24, 2025
4ed803f
Update tests
Dreamsorcerer Oct 24, 2025
b18d623
Unused import
Dreamsorcerer Oct 24, 2025
cde1e76
Fix
Dreamsorcerer Oct 24, 2025
34c37f2
Fix
Dreamsorcerer Oct 24, 2025
740a95f
Fix
Dreamsorcerer Oct 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix
  • Loading branch information
Dreamsorcerer committed Oct 24, 2025
commit cde1e762fa46c5a39b2469b705ab227b83e15cf4
2 changes: 0 additions & 2 deletions aiohttp/client_reqrep.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy
from yarl import URL

from . import hdrs, multipart, payload

Check notice

Code scanning / CodeQL

Cyclic import Note

Import of module
aiohttp.multipart
begins an import cycle.

Copilot Autofix

AI about 2 months ago

The best way to fix the cyclic import is to move any direct reference to multipart from module-level imports to within the function(s) or method(s) that actually require it. If multipart functionality is only used in a few places, these can import multipart locally within the required function. This minimizes the scope of the cyclic import and breaks the cycle at module load time.

Specifically, in aiohttp/client_reqrep.py, line 19 (from . import hdrs, multipart, payload) should be split so that multipart is imported only where necessary, i.e., move import multipart inside the function(s) or class(es) that use it. Leave hdrs and payload in the module-level import if they do not create cycles.

To implement:

  1. Remove multipart from the module-level grouped import (line 19).
  2. For each instance of multipart usage in this file, add a local import: from . import multipart inside the function/method just before it is used.
  3. Leave all other logic intact.
  4. Do not otherwise modify functionality; only move the import for cycle-breaking.
Suggested changeset 1
aiohttp/client_reqrep.py

Autofix patch

Autofix patch
Run the following command in your local git repository to apply this patch
cat << 'EOF' | git apply
diff --git a/aiohttp/client_reqrep.py b/aiohttp/client_reqrep.py
--- a/aiohttp/client_reqrep.py
+++ b/aiohttp/client_reqrep.py
@@ -16,7 +16,7 @@
 from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy
 from yarl import URL
 
-from . import hdrs, multipart, payload
+from . import hdrs, payload
 from ._cookie_helpers import (
     parse_cookie_header,
     parse_set_cookie_headers,
EOF
@@ -16,7 +16,7 @@
from multidict import CIMultiDict, CIMultiDictProxy, MultiDict, MultiDictProxy
from yarl import URL

from . import hdrs, multipart, payload
from . import hdrs, payload
from ._cookie_helpers import (
parse_cookie_header,
parse_set_cookie_headers,
Copilot is powered by AI and may make mistakes. Always verify output.
Unable to commit as this autofix suggestion is now outdated
from ._cookie_helpers import (
parse_cookie_header,
parse_set_cookie_headers,
Expand Down Expand Up @@ -840,7 +840,6 @@
writer=task,
continue100=None,
timer=TimerNoop(),
request_info=None,
traces=(),
loop=self.loop,
session=None,
Expand Down Expand Up @@ -1299,7 +1298,6 @@
writer=task,
continue100=self._continue,
timer=self._timer,
request_info=None,
traces=self._traces,
loop=self.loop,
session=self._session,
Expand Down
Loading