ant-ray-nightly 3.0.0.dev20251015__cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl → 3.0.0.dev20251019__cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ant-ray-nightly might be problematic. Click here for more details.

Files changed (23) hide show
  1. {ant_ray_nightly-3.0.0.dev20251015.dist-info → ant_ray_nightly-3.0.0.dev20251019.dist-info}/METADATA +77 -77
  2. {ant_ray_nightly-3.0.0.dev20251015.dist-info → ant_ray_nightly-3.0.0.dev20251019.dist-info}/RECORD +23 -23
  3. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__init__.py +1 -1
  4. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client.py +29 -0
  5. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_reqrep.py +0 -6
  6. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/compression_utils.py +9 -13
  7. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/helpers.py +30 -2
  8. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/http_parser.py +1 -1
  9. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web.py +4 -17
  10. ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_urldispatcher.py +15 -15
  11. ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/METADATA +4 -5
  12. ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/RECORD +16 -16
  13. ray/thirdparty_files/setproctitle-1.2.2.dist-info/RECORD +1 -1
  14. ray/thirdparty_files/setproctitle.cpython-310-aarch64-linux-gnu.so +0 -0
  15. {ant_ray_nightly-3.0.0.dev20251015.dist-info → ant_ray_nightly-3.0.0.dev20251019.dist-info}/WHEEL +0 -0
  16. {ant_ray_nightly-3.0.0.dev20251015.dist-info → ant_ray_nightly-3.0.0.dev20251019.dist-info}/entry_points.txt +0 -0
  17. {ant_ray_nightly-3.0.0.dev20251015.dist-info → ant_ray_nightly-3.0.0.dev20251019.dist-info}/top_level.txt +0 -0
  18. /ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/INSTALLER +0 -0
  19. /ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/REQUESTED +0 -0
  20. /ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/WHEEL +0 -0
  21. /ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/licenses/LICENSE.txt +0 -0
  22. /ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/licenses/vendor/llhttp/LICENSE +0 -0
  23. /ray/_private/runtime_env/agent/thirdparty_files/{aiohttp-3.13.0.dist-info → aiohttp-3.13.1.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ant-ray-nightly
3
- Version: 3.0.0.dev20251015
3
+ Version: 3.0.0.dev20251019
4
4
  Summary: Ray provides a simple, universal API for building distributed applications.
5
5
  Home-page: https://github.com/ray-project/ray
6
6
  Author: Ray Team
@@ -24,28 +24,28 @@ Requires-Dist: redis<=4.5.5,>=3.5.0
24
24
  Provides-Extra: adag
25
25
  Requires-Dist: cupy-cuda12x; sys_platform != "darwin" and extra == "adag"
26
26
  Provides-Extra: air
27
- Requires-Dist: opentelemetry-exporter-prometheus; extra == "air"
28
- Requires-Dist: opentelemetry-proto; extra == "air"
29
- Requires-Dist: pyarrow>=9.0.0; extra == "air"
30
- Requires-Dist: prometheus-client>=0.7.1; extra == "air"
31
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "air"
32
- Requires-Dist: pandas; extra == "air"
33
- Requires-Dist: flow-insight>=1.0.0; extra == "air"
27
+ Requires-Dist: fsspec; extra == "air"
34
28
  Requires-Dist: virtualenv!=20.21.1,>=20.0.24; extra == "air"
29
+ Requires-Dist: opentelemetry-proto; extra == "air"
35
30
  Requires-Dist: colorful; extra == "air"
36
- Requires-Dist: opencensus; extra == "air"
37
31
  Requires-Dist: opentelemetry-sdk; extra == "air"
38
- Requires-Dist: smart-open; extra == "air"
39
- Requires-Dist: numpy>=1.20; extra == "air"
40
- Requires-Dist: watchfiles; extra == "air"
41
- Requires-Dist: pandas>=1.3; extra == "air"
32
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "air"
42
33
  Requires-Dist: starlette; extra == "air"
43
- Requires-Dist: fastapi; extra == "air"
44
- Requires-Dist: aiohttp-cors; extra == "air"
34
+ Requires-Dist: watchfiles; extra == "air"
45
35
  Requires-Dist: requests; extra == "air"
36
+ Requires-Dist: opencensus; extra == "air"
37
+ Requires-Dist: smart-open; extra == "air"
38
+ Requires-Dist: opentelemetry-exporter-prometheus; extra == "air"
39
+ Requires-Dist: fastapi; extra == "air"
46
40
  Requires-Dist: tensorboardX>=1.9; extra == "air"
47
- Requires-Dist: fsspec; extra == "air"
41
+ Requires-Dist: pyarrow>=9.0.0; extra == "air"
42
+ Requires-Dist: flow-insight>=1.0.0; extra == "air"
43
+ Requires-Dist: pandas; extra == "air"
48
44
  Requires-Dist: aiohttp>=3.7; extra == "air"
45
+ Requires-Dist: prometheus-client>=0.7.1; extra == "air"
46
+ Requires-Dist: aiohttp-cors; extra == "air"
47
+ Requires-Dist: pandas>=1.3; extra == "air"
48
+ Requires-Dist: numpy>=1.20; extra == "air"
49
49
  Requires-Dist: uvicorn[standard]; extra == "air"
50
50
  Requires-Dist: grpcio>=1.32.0; python_version < "3.10" and extra == "air"
51
51
  Requires-Dist: py-spy>=0.2.0; python_version < "3.12" and extra == "air"
@@ -53,38 +53,38 @@ Requires-Dist: grpcio>=1.42.0; python_version >= "3.10" and extra == "air"
53
53
  Requires-Dist: py-spy>=0.4.0; python_version >= "3.12" and extra == "air"
54
54
  Requires-Dist: pyarrow<18; (sys_platform == "darwin" and platform_machine == "x86_64") and extra == "air"
55
55
  Provides-Extra: all
56
- Requires-Dist: opentelemetry-exporter-prometheus; extra == "all"
57
- Requires-Dist: opentelemetry-proto; extra == "all"
58
- Requires-Dist: pyarrow>=9.0.0; extra == "all"
59
- Requires-Dist: prometheus-client>=0.7.1; extra == "all"
60
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "all"
61
- Requires-Dist: flow-insight>=1.0.0; extra == "all"
62
- Requires-Dist: pandas; extra == "all"
63
- Requires-Dist: gymnasium==1.0.0; extra == "all"
64
- Requires-Dist: grpcio; extra == "all"
56
+ Requires-Dist: fsspec; extra == "all"
57
+ Requires-Dist: lz4; extra == "all"
58
+ Requires-Dist: dm-tree; extra == "all"
65
59
  Requires-Dist: scipy; extra == "all"
66
60
  Requires-Dist: virtualenv!=20.21.1,>=20.0.24; extra == "all"
61
+ Requires-Dist: opentelemetry-proto; extra == "all"
67
62
  Requires-Dist: colorful; extra == "all"
68
- Requires-Dist: dm-tree; extra == "all"
69
- Requires-Dist: lz4; extra == "all"
70
- Requires-Dist: opencensus; extra == "all"
71
63
  Requires-Dist: opentelemetry-sdk; extra == "all"
72
- Requires-Dist: smart-open; extra == "all"
73
- Requires-Dist: pyOpenSSL; extra == "all"
74
- Requires-Dist: numpy>=1.20; extra == "all"
75
- Requires-Dist: opentelemetry-exporter-otlp; extra == "all"
76
- Requires-Dist: watchfiles; extra == "all"
77
- Requires-Dist: pandas>=1.3; extra == "all"
78
64
  Requires-Dist: pyyaml; extra == "all"
65
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "all"
79
66
  Requires-Dist: starlette; extra == "all"
80
- Requires-Dist: fastapi; extra == "all"
81
- Requires-Dist: aiohttp-cors; extra == "all"
67
+ Requires-Dist: watchfiles; extra == "all"
82
68
  Requires-Dist: requests; extra == "all"
83
- Requires-Dist: opentelemetry-api; extra == "all"
84
- Requires-Dist: fsspec; extra == "all"
85
- Requires-Dist: aiohttp>=3.7; extra == "all"
69
+ Requires-Dist: opencensus; extra == "all"
70
+ Requires-Dist: gymnasium==1.0.0; extra == "all"
71
+ Requires-Dist: smart-open; extra == "all"
72
+ Requires-Dist: opentelemetry-exporter-prometheus; extra == "all"
73
+ Requires-Dist: fastapi; extra == "all"
86
74
  Requires-Dist: tensorboardX>=1.9; extra == "all"
75
+ Requires-Dist: pyarrow>=9.0.0; extra == "all"
87
76
  Requires-Dist: ormsgpack==1.7.0; extra == "all"
77
+ Requires-Dist: flow-insight>=1.0.0; extra == "all"
78
+ Requires-Dist: pyOpenSSL; extra == "all"
79
+ Requires-Dist: aiohttp>=3.7; extra == "all"
80
+ Requires-Dist: prometheus-client>=0.7.1; extra == "all"
81
+ Requires-Dist: pandas; extra == "all"
82
+ Requires-Dist: aiohttp-cors; extra == "all"
83
+ Requires-Dist: opentelemetry-exporter-otlp; extra == "all"
84
+ Requires-Dist: pandas>=1.3; extra == "all"
85
+ Requires-Dist: opentelemetry-api; extra == "all"
86
+ Requires-Dist: grpcio; extra == "all"
87
+ Requires-Dist: numpy>=1.20; extra == "all"
88
88
  Requires-Dist: uvicorn[standard]; extra == "all"
89
89
  Requires-Dist: grpcio>=1.32.0; python_version < "3.10" and extra == "all"
90
90
  Requires-Dist: py-spy>=0.2.0; python_version < "3.12" and extra == "all"
@@ -124,32 +124,32 @@ Requires-Dist: py-spy>=0.2.0; python_version < "3.12" and extra == "default"
124
124
  Requires-Dist: grpcio>=1.42.0; python_version >= "3.10" and extra == "default"
125
125
  Requires-Dist: py-spy>=0.4.0; python_version >= "3.12" and extra == "default"
126
126
  Provides-Extra: llm
127
- Requires-Dist: jsonschema; extra == "llm"
128
- Requires-Dist: opentelemetry-exporter-prometheus; extra == "llm"
127
+ Requires-Dist: fsspec; extra == "llm"
128
+ Requires-Dist: typer; extra == "llm"
129
129
  Requires-Dist: opentelemetry-proto; extra == "llm"
130
- Requires-Dist: pyarrow>=9.0.0; extra == "llm"
131
- Requires-Dist: prometheus-client>=0.7.1; extra == "llm"
132
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "llm"
133
- Requires-Dist: flow-insight>=1.0.0; extra == "llm"
134
130
  Requires-Dist: virtualenv!=20.21.1,>=20.0.24; extra == "llm"
135
131
  Requires-Dist: colorful; extra == "llm"
136
- Requires-Dist: opencensus; extra == "llm"
137
132
  Requires-Dist: opentelemetry-sdk; extra == "llm"
138
- Requires-Dist: smart-open; extra == "llm"
139
- Requires-Dist: numpy>=1.20; extra == "llm"
140
- Requires-Dist: watchfiles; extra == "llm"
141
- Requires-Dist: pandas>=1.3; extra == "llm"
142
- Requires-Dist: typer; extra == "llm"
133
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "llm"
134
+ Requires-Dist: ninja; extra == "llm"
143
135
  Requires-Dist: starlette; extra == "llm"
144
- Requires-Dist: fastapi; extra == "llm"
145
- Requires-Dist: aiohttp-cors; extra == "llm"
146
- Requires-Dist: jsonref>=1.1.0; extra == "llm"
136
+ Requires-Dist: watchfiles; extra == "llm"
147
137
  Requires-Dist: requests; extra == "llm"
148
- Requires-Dist: fsspec; extra == "llm"
138
+ Requires-Dist: opencensus; extra == "llm"
139
+ Requires-Dist: jsonref>=1.1.0; extra == "llm"
140
+ Requires-Dist: jsonschema; extra == "llm"
141
+ Requires-Dist: smart-open; extra == "llm"
142
+ Requires-Dist: opentelemetry-exporter-prometheus; extra == "llm"
143
+ Requires-Dist: fastapi; extra == "llm"
144
+ Requires-Dist: pyarrow>=9.0.0; extra == "llm"
145
+ Requires-Dist: flow-insight>=1.0.0; extra == "llm"
149
146
  Requires-Dist: aiohttp>=3.7; extra == "llm"
147
+ Requires-Dist: prometheus-client>=0.7.1; extra == "llm"
148
+ Requires-Dist: aiohttp-cors; extra == "llm"
149
+ Requires-Dist: pandas>=1.3; extra == "llm"
150
150
  Requires-Dist: vllm>=0.8.5; extra == "llm"
151
+ Requires-Dist: numpy>=1.20; extra == "llm"
151
152
  Requires-Dist: uvicorn[standard]; extra == "llm"
152
- Requires-Dist: ninja; extra == "llm"
153
153
  Requires-Dist: grpcio>=1.32.0; python_version < "3.10" and extra == "llm"
154
154
  Requires-Dist: async-timeout; python_version < "3.11" and extra == "llm"
155
155
  Requires-Dist: py-spy>=0.2.0; python_version < "3.12" and extra == "llm"
@@ -175,41 +175,41 @@ Requires-Dist: pyyaml; extra == "rllib"
175
175
  Requires-Dist: scipy; extra == "rllib"
176
176
  Requires-Dist: pyarrow<18; (sys_platform == "darwin" and platform_machine == "x86_64") and extra == "rllib"
177
177
  Provides-Extra: serve
178
- Requires-Dist: opentelemetry-exporter-prometheus; extra == "serve"
179
- Requires-Dist: opentelemetry-proto; extra == "serve"
180
- Requires-Dist: prometheus-client>=0.7.1; extra == "serve"
181
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "serve"
182
- Requires-Dist: flow-insight>=1.0.0; extra == "serve"
183
178
  Requires-Dist: virtualenv!=20.21.1,>=20.0.24; extra == "serve"
179
+ Requires-Dist: opentelemetry-proto; extra == "serve"
184
180
  Requires-Dist: colorful; extra == "serve"
185
- Requires-Dist: opencensus; extra == "serve"
186
181
  Requires-Dist: opentelemetry-sdk; extra == "serve"
187
- Requires-Dist: smart-open; extra == "serve"
188
- Requires-Dist: watchfiles; extra == "serve"
182
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "serve"
189
183
  Requires-Dist: starlette; extra == "serve"
190
- Requires-Dist: fastapi; extra == "serve"
191
- Requires-Dist: aiohttp-cors; extra == "serve"
184
+ Requires-Dist: watchfiles; extra == "serve"
192
185
  Requires-Dist: requests; extra == "serve"
186
+ Requires-Dist: opencensus; extra == "serve"
187
+ Requires-Dist: smart-open; extra == "serve"
188
+ Requires-Dist: opentelemetry-exporter-prometheus; extra == "serve"
189
+ Requires-Dist: fastapi; extra == "serve"
190
+ Requires-Dist: flow-insight>=1.0.0; extra == "serve"
193
191
  Requires-Dist: aiohttp>=3.7; extra == "serve"
192
+ Requires-Dist: prometheus-client>=0.7.1; extra == "serve"
193
+ Requires-Dist: aiohttp-cors; extra == "serve"
194
194
  Requires-Dist: uvicorn[standard]; extra == "serve"
195
195
  Provides-Extra: serve-grpc
196
- Requires-Dist: opentelemetry-exporter-prometheus; extra == "serve-grpc"
197
- Requires-Dist: opentelemetry-proto; extra == "serve-grpc"
198
- Requires-Dist: prometheus-client>=0.7.1; extra == "serve-grpc"
199
- Requires-Dist: flow-insight>=1.0.0; extra == "serve-grpc"
200
- Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "serve-grpc"
201
196
  Requires-Dist: virtualenv!=20.21.1,>=20.0.24; extra == "serve-grpc"
197
+ Requires-Dist: opentelemetry-proto; extra == "serve-grpc"
202
198
  Requires-Dist: colorful; extra == "serve-grpc"
203
- Requires-Dist: opencensus; extra == "serve-grpc"
204
199
  Requires-Dist: opentelemetry-sdk; extra == "serve-grpc"
205
- Requires-Dist: smart-open; extra == "serve-grpc"
206
- Requires-Dist: pyOpenSSL; extra == "serve-grpc"
207
- Requires-Dist: watchfiles; extra == "serve-grpc"
200
+ Requires-Dist: pydantic!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.*,!=2.4.*,<3; extra == "serve-grpc"
208
201
  Requires-Dist: starlette; extra == "serve-grpc"
209
- Requires-Dist: fastapi; extra == "serve-grpc"
210
- Requires-Dist: aiohttp-cors; extra == "serve-grpc"
202
+ Requires-Dist: watchfiles; extra == "serve-grpc"
211
203
  Requires-Dist: requests; extra == "serve-grpc"
204
+ Requires-Dist: opencensus; extra == "serve-grpc"
205
+ Requires-Dist: smart-open; extra == "serve-grpc"
206
+ Requires-Dist: opentelemetry-exporter-prometheus; extra == "serve-grpc"
207
+ Requires-Dist: fastapi; extra == "serve-grpc"
208
+ Requires-Dist: flow-insight>=1.0.0; extra == "serve-grpc"
209
+ Requires-Dist: pyOpenSSL; extra == "serve-grpc"
212
210
  Requires-Dist: aiohttp>=3.7; extra == "serve-grpc"
211
+ Requires-Dist: prometheus-client>=0.7.1; extra == "serve-grpc"
212
+ Requires-Dist: aiohttp-cors; extra == "serve-grpc"
213
213
  Requires-Dist: uvicorn[standard]; extra == "serve-grpc"
214
214
  Requires-Dist: grpcio>=1.32.0; python_version < "3.10" and extra == "serve-grpc"
215
215
  Requires-Dist: py-spy>=0.2.0; python_version < "3.12" and extra == "serve-grpc"
@@ -1,8 +1,8 @@
1
- ant_ray_nightly-3.0.0.dev20251015.dist-info/entry_points.txt,sha256=HzQIZGspUzWojBmR9Xvb28m4bPhi-yJjV1U1pdlRkyY,111
2
- ant_ray_nightly-3.0.0.dev20251015.dist-info/METADATA,sha256=0VLjMwm1mEQ63kst3q_5-93o0MgKd1fPSiW1ZXq-fGU,19000
3
- ant_ray_nightly-3.0.0.dev20251015.dist-info/RECORD,,
4
- ant_ray_nightly-3.0.0.dev20251015.dist-info/WHEEL,sha256=yBJ39H2N-iQA0g0zdqrpM8sNTwAo6IblEG8Gu6Ov4Xc,153
5
- ant_ray_nightly-3.0.0.dev20251015.dist-info/top_level.txt,sha256=GJvmpjCEmVfQsBskWDIj2hraOPW3F8A46rlbd9c3vc0,4
1
+ ant_ray_nightly-3.0.0.dev20251019.dist-info/entry_points.txt,sha256=HzQIZGspUzWojBmR9Xvb28m4bPhi-yJjV1U1pdlRkyY,111
2
+ ant_ray_nightly-3.0.0.dev20251019.dist-info/METADATA,sha256=OeKSCa1AuqQQMMuWQjKEeVP3PkEnXdbGIdGHVxvSJo4,19000
3
+ ant_ray_nightly-3.0.0.dev20251019.dist-info/RECORD,,
4
+ ant_ray_nightly-3.0.0.dev20251019.dist-info/WHEEL,sha256=yBJ39H2N-iQA0g0zdqrpM8sNTwAo6IblEG8Gu6Ov4Xc,153
5
+ ant_ray_nightly-3.0.0.dev20251019.dist-info/top_level.txt,sha256=GJvmpjCEmVfQsBskWDIj2hraOPW3F8A46rlbd9c3vc0,4
6
6
  ray/__init__.py,sha256=9t_0XhcFhrIHCeLdH7Shyt5RaW6xTnH1Zopq1psy29c,7676
7
7
  ray/_raylet.so,sha256=w9Bev1GymoiwJtaP5KYkh7AWmgosIUikoC9RYjH-W64,38673288
8
8
  ray/runtime_context.py,sha256=1mIoKizdnax84QUM2maU0MrI9KBTJ_0tZh6ubyqOjDY,19948
@@ -551,10 +551,10 @@ ray/_private/runtime_env/agent/thirdparty_files/propcache/py.typed,sha256=ay5OMO
551
551
  ray/_private/runtime_env/agent/thirdparty_files/propcache/_helpers_py.py,sha256=Wixs2zWA-FBU-j4zLPyBUU24FEfPhKk-UunFSp9q95U,1909
552
552
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/log.py,sha256=BbNKx9e3VMIm0xYjZI0IcBBoS7wjdeIeSaiJE7-qK2g,325
553
553
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/payload.py,sha256=O6nsYNULL7AeM2cyJ6TYX73ncVnL5xJwt5AegxwMKqw,40874
554
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__init__.py,sha256=V8eLpNvuyUF7ZLcqI6e1ydaeZSwnDQZXcL_ouRH-mCo,8302
554
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/__init__.py,sha256=mzVOT0ZynvvN9RnDC_TZSLQmII3JiGsjo2ZwoCFf5LU,8302
555
555
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/abc.py,sha256=M66F4S6m00bIEn7y4ha_XLTMDmVQ9dPihfOVB0pGfOo,7149
556
556
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_cookie_helpers.py,sha256=uncmWVWETXBH-IAAOlT5bHZSaOhGaV7rY9u75B7f2Yg,12247
557
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/helpers.py,sha256=bblNEhp4hFimEmxMdPNxEluBY17L5YUArHYvoxzoEe4,29614
557
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/helpers.py,sha256=Q1307PCEnWz4RP8crUw8dk58c0YF2Ei3JywkKfRxz5E,30629
558
558
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_ws.py,sha256=1CIjIXwyzOMIYw6AjUES4-qUwbyVHW1seJKQfg_Rta8,15109
559
559
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_app.py,sha256=lGU_aAMN-h3wy-LTTHi6SeKH8ydt1G51BXcCspgD5ZA,19452
560
560
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/http.py,sha256=8o8j8xH70OWjnfTWA9V44NR785QPxEPrUtzMXiAVpwc,1842
@@ -571,7 +571,7 @@ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/pytest_plugin.py,sha256=
571
571
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/multipart.py,sha256=6q6QRjKFVqaWzTbc7bkuBtXsTaQq5b2BhHxLBvAElac,40040
572
572
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_ws.py,sha256=lItgmyatkXh0M6EY7JoZnSZkUl6R0wv8B88X4ILqQbU,22739
573
573
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_http_writer.pyx,sha256=VlFEBM6HoVv8a0AAJtc6JwFlsv2-cDE8-gB94p3dfhQ,4664
574
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_reqrep.py,sha256=ckYUCHgbyr23-ypiZYNxvIQTsMpMVtoTLniNij4OlXg,53668
574
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_reqrep.py,sha256=eEREDrZ0M8ZFTt1wjHduR-P8_sm40K65gNz-iMGYask,53391
575
575
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/streams.py,sha256=cQxo6Fyu_HDWDpbezGRVPIVYtVtTbSLRF7g511DNmSs,22601
576
576
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/base_protocol.py,sha256=Tp8cxUPQvv9kUPk3w6lAzk6d2MAzV3scwI_3Go3C47c,3025
577
577
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/resolver.py,sha256=gsrfUpFf8iHlcHfJvY-1fiBHW3PRvRVNb5lNZBg3zlY,10031
@@ -584,9 +584,9 @@ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_proto.py,sha256=5
584
584
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/typedefs.py,sha256=wUlqwe9Mw9W8jT3HsYJcYk00qP3EMPz3nTkYXmeNN48,1657
585
585
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/payload_streamer.py,sha256=ZzEYyfzcjGWkVkK3XR2pBthSCSIykYvY3Wr5cGQ2eTc,2211
586
586
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/py.typed,sha256=sow9soTwP9T_gEAQSVh7Gb8855h04Nwmhs2We-JRgZM,7
587
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_urldispatcher.py,sha256=abp8PZnSfXPB89vS_9kJUenrXOu48bjTEjbHndXZ_48,44060
587
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_urldispatcher.py,sha256=3ryu1ZOpcq79IYNMd6EjYWmQ_i6JbsJzS_IaV0yoYBg,44203
588
588
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_middleware_digest_auth.py,sha256=BIoQJ5eWL5NNkPOmezTGrceWIho8ETDvS8NKvX-3Xdw,17088
589
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/compression_utils.py,sha256=JvEDGV2QXjYXT4Q_rjr1su-SrENoSjHiuDAScr05fJk,9632
589
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/compression_utils.py,sha256=skLoJxkQoKmFgrPshkMNWf2zMso2w97EK44a1SvnU_U,9600
590
590
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/hdrs.py,sha256=2rj5MyA-6yRdYPhW5UKkW4iNWhEAlGIOSBH5D4FmKNE,5111
591
591
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_headers.pxi,sha256=n701k28dVPjwRnx5j6LpJhLTfj7dqu2vJt7f0O60Oyg,2007
592
592
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/connector.py,sha256=WQetKoSW7XnHA9r4o9OWwO3-n7ymOwBd2Tg_xHNw0Bs,68456
@@ -596,15 +596,15 @@ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_routedef.py,sha256=V
596
596
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/cookiejar.py,sha256=e28ZMQwJ5P0vbPX1OX4Se7-k3zeGvocFEqzGhwpG53k,18922
597
597
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/tcp_helpers.py,sha256=BSadqVWaBpMFDRWnhaaR941N9MiDZ7bdTrxgCb0CW-M,961
598
598
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_http_parser.pyx,sha256=tmA1PaJn7H8U1nyXtoHJV44pxYVzqXAf1UgJaYPaw28,28219
599
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/http_parser.py,sha256=nXizX63zytOxjVyEds0CPuvFKa9MY96Zfv5hpZjPAhY,37372
599
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/http_parser.py,sha256=fACBNI47n9hnVPWfm5AJufuezsoYOF_VLp4bptYjvQI,37377
600
600
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client_middlewares.py,sha256=kP5N9CMzQPMGPIEydeVUiLUTLsw8Vl8Gr4qAWYdu3vM,1918
601
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client.py,sha256=UmwwoDurmDDvxTwa4e1VElko4mc8_Snsvs3CA6SE-kc,57584
601
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/client.py,sha256=nYTIOdQgmeXb6qLqg7zeO4DZBSP6omK1vNQAELG3fdg,58656
602
602
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_response.py,sha256=PKcziNU4LmftXqKVvoRMrAbOeVClpSN-iznHsiWezmU,29341
603
603
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_exceptions.py,sha256=7nIuiwhZ39vJJ9KrWqArA5QcWbUdqkz2CLwEpJapeN8,10360
604
604
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_log.py,sha256=rX5D7xLOX2B6BMdiZ-chme_KfJfW5IXEoFwLfkfkajs,7865
605
605
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web_fileresponse.py,sha256=Xzau8EMrWNrFg3u46h4UEteg93G4zYq94CU6vy0HiqE,16362
606
606
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_http_parser.cpython-310-aarch64-linux-gnu.so,sha256=zM89KnIbzh2VkpMkTIs0F2n9NXN44RMoM5QhHKUjZgY,2797544
607
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web.py,sha256=sG_U41AY4S_LBY9sReiBzXKJRZpXk8xgiE_l5S_UPPg,18390
607
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp/web.py,sha256=JzSNmejg5G6YeFAnkIgZfytqbU86sNu844yYKmoUpqs,17852
608
608
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_websocket/__init__.py,sha256=Mar3R9_vBN_Ea4lsW7iTAVXD7OKswKPGqF5xgSyt77k,44
609
609
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_websocket/mask.cpython-310-aarch64-linux-gnu.so,sha256=ZiQRCF55iXhM0JbvjGtgQL2EeKxYOHE6F6JILIWcYhQ,390632
610
610
  ray/_private/runtime_env/agent/thirdparty_files/aiohttp/_websocket/helpers.py,sha256=P-XLv8IUaihKzDenVUqfKU5DJbWE5HvG8uhvUZK8Ic4,5038
@@ -653,14 +653,14 @@ ray/_private/runtime_env/agent/thirdparty_files/yarl-1.22.0.dist-info/WHEEL,sha2
653
653
  ray/_private/runtime_env/agent/thirdparty_files/yarl-1.22.0.dist-info/top_level.txt,sha256=vf3SJuQh-k7YtvsUrV_OPOrT9Kqn0COlk7IPYyhtGkQ,5
654
654
  ray/_private/runtime_env/agent/thirdparty_files/yarl-1.22.0.dist-info/licenses/NOTICE,sha256=VtasbIEFwKUTBMIdsGDjYa-ajqCvmnXCOcKLXRNpODg,609
655
655
  ray/_private/runtime_env/agent/thirdparty_files/yarl-1.22.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
656
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/METADATA,sha256=MMgGAtplXaCYPIJajnkzKVOSQolGCMLIMMhrr1XaCLM,8147
657
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
658
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
659
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/RECORD,sha256=Ssz7xqcacsgz7FBxzVzLqUoHJxBi9-xXykuBttuVOw0,9922
660
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/WHEEL,sha256=v3CwFJX9-QMowLIlszvrAdfnNSqWxeOcrw1gNsvZZeE,193
661
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/top_level.txt,sha256=iv-JIaacmTl-hSho3QmphcKnbRRYx1st47yjz_178Ro,8
662
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/licenses/LICENSE.txt,sha256=n4DQ2311WpQdtFchcsJw7L2PCCuiFd3QlZhZQu2Uqes,588
663
- ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.0.dist-info/licenses/vendor/llhttp/LICENSE,sha256=68qFTgE0zSVtZzYnwgSZ9CV363S6zwi58ltianPJEnc,1105
656
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/METADATA,sha256=ohV0YRJDiQMjtAViNzumXljaLwMz4BLFmVDJXrqw6cU,8135
657
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
658
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
659
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/RECORD,sha256=KxIGn2DInSjz-7WRaikI8m8N_OMnsIvcILJokCFkK-M,9922
660
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/WHEEL,sha256=v3CwFJX9-QMowLIlszvrAdfnNSqWxeOcrw1gNsvZZeE,193
661
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/top_level.txt,sha256=iv-JIaacmTl-hSho3QmphcKnbRRYx1st47yjz_178Ro,8
662
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/licenses/LICENSE.txt,sha256=n4DQ2311WpQdtFchcsJw7L2PCCuiFd3QlZhZQu2Uqes,588
663
+ ray/_private/runtime_env/agent/thirdparty_files/aiohttp-3.13.1.dist-info/licenses/vendor/llhttp/LICENSE,sha256=68qFTgE0zSVtZzYnwgSZ9CV363S6zwi58ltianPJEnc,1105
664
664
  ray/_private/runtime_env/agent/thirdparty_files/aiosignal/__init__.py,sha256=TIkmUG9HTBt4dfq2nISYBiZiRB2xwvFtEZydLP0HPL4,1537
665
665
  ray/_private/runtime_env/agent/thirdparty_files/aiosignal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
666
666
  ray/_private/runtime_env/agent/thirdparty_files/aiohappyeyeballs/__init__.py,sha256=x7kktHEtaD9quBcWDJPuLeKyjuVAI-Jj14S9B_5hcTs,361
@@ -1178,7 +1178,7 @@ ray/data/datasource/file_datasink.py,sha256=_2HQ27fFU2bLe8qbBzE0N9Swo17bvR26MrHB
1178
1178
  ray/data/extensions/__init__.py,sha256=wfJu5w7Offu__LsrBGAR41UlKlZ1exB9TRLWjbuTgWg,1187
1179
1179
  ray/data/extensions/object_extension.py,sha256=ZUSj0p2sfBBShI3mi3on2S7Z66H_Fj-4AM9i42t9-Gs,301
1180
1180
  ray/data/extensions/tensor_extension.py,sha256=xeEYpd5EgkEbCe1ufWiuKvinnZ5L7Q_1S_7re6s7V00,476
1181
- ray/thirdparty_files/setproctitle.cpython-310-aarch64-linux-gnu.so,sha256=fHxk8SlBOyxk75JrI9oqjC4mNuuO7vyA3rSl6QY-QCc,120536
1181
+ ray/thirdparty_files/setproctitle.cpython-310-aarch64-linux-gnu.so,sha256=KxDvOCcJ6ZumOcA3BKabmTRLS8pv9CLrbd5lDm-LXpo,120536
1182
1182
  ray/thirdparty_files/colorama/__init__.py,sha256=wePQA4U20tKgYARySLEC047ucNX-g8pRLpYBuiHlLb8,266
1183
1183
  ray/thirdparty_files/colorama/win32.py,sha256=YQOKwMTwtGBbsY4dL5HYTvwTeP9wIQra5MvPNddpxZs,6181
1184
1184
  ray/thirdparty_files/colorama/initialise.py,sha256=-hIny86ClXo39ixh5iSCfUIa2f_h_bgKRDW7gqs-KLU,3325
@@ -1188,7 +1188,7 @@ ray/thirdparty_files/colorama/ansitowin32.py,sha256=vPNYa3OZbxjbuFyaVo0Tmhmy1FZ1
1188
1188
  ray/thirdparty_files/setproctitle-1.2.2.dist-info/METADATA,sha256=IurbEmxkQM4cI4dZKyMLG8M0iQ6T09YxrrxcU4tnhYc,9051
1189
1189
  ray/thirdparty_files/setproctitle-1.2.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1190
1190
  ray/thirdparty_files/setproctitle-1.2.2.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
1191
- ray/thirdparty_files/setproctitle-1.2.2.dist-info/RECORD,sha256=mOAL3ESHOiEI8kXhsADRbQ7XPz28uvHFkqrbkxmJpGA,614
1191
+ ray/thirdparty_files/setproctitle-1.2.2.dist-info/RECORD,sha256=q3U4ZMfM7iMhc6SKdEm-4q8aZXzxgnold_Ji7T5ffs4,614
1192
1192
  ray/thirdparty_files/setproctitle-1.2.2.dist-info/WHEEL,sha256=EnThCQWSFCE_cPaYba2K-Xw_FwJ6VliZcmVkwdlMBZ0,105
1193
1193
  ray/thirdparty_files/setproctitle-1.2.2.dist-info/top_level.txt,sha256=khlu2SuNEK2Ct594XhMTT62ll8p0oFza-4dmzUFTBhQ,13
1194
1194
  ray/thirdparty_files/psutil/_psposix.py,sha256=5pBE2Mk8LCWLthOpgKM5_S6AJOSankF0dHrozwtDi-Y,7141
@@ -1,4 +1,4 @@
1
- __version__ = "3.13.0"
1
+ __version__ = "3.13.1"
2
2
 
3
3
  from typing import TYPE_CHECKING, Tuple
4
4
 
@@ -98,7 +98,9 @@ from .helpers import (
98
98
  EMPTY_BODY_METHODS,
99
99
  BasicAuth,
100
100
  TimeoutHandle,
101
+ basicauth_from_netrc,
101
102
  get_env_proxy_for_url,
103
+ netrc_from_env,
102
104
  sentinel,
103
105
  strip_auth_from_url,
104
106
  )
@@ -657,6 +659,20 @@ class ClientSession:
657
659
  )
658
660
  ):
659
661
  auth = self._default_auth
662
+
663
+ # Try netrc if auth is still None and trust_env is enabled.
664
+ # Only check if NETRC environment variable is set to avoid
665
+ # creating an expensive executor job unnecessarily.
666
+ if (
667
+ auth is None
668
+ and self._trust_env
669
+ and url.host is not None
670
+ and os.environ.get("NETRC")
671
+ ):
672
+ auth = await self._loop.run_in_executor(
673
+ None, self._get_netrc_auth, url.host
674
+ )
675
+
660
676
  # It would be confusing if we support explicit
661
677
  # Authorization header with auth argument
662
678
  if (
@@ -1211,6 +1227,19 @@ class ClientSession:
1211
1227
  added_names.add(key)
1212
1228
  return result
1213
1229
 
1230
+ def _get_netrc_auth(self, host: str) -> Optional[BasicAuth]:
1231
+ """
1232
+ Get auth from netrc for the given host.
1233
+
1234
+ This method is designed to be called in an executor to avoid
1235
+ blocking I/O in the event loop.
1236
+ """
1237
+ netrc_obj = netrc_from_env()
1238
+ try:
1239
+ return basicauth_from_netrc(netrc_obj, host)
1240
+ except LookupError:
1241
+ return None
1242
+
1214
1243
  if sys.version_info >= (3, 11) and TYPE_CHECKING:
1215
1244
 
1216
1245
  def get(
@@ -53,8 +53,6 @@ from .helpers import (
53
53
  BasicAuth,
54
54
  HeadersMixin,
55
55
  TimerNoop,
56
- basicauth_from_netrc,
57
- netrc_from_env,
58
56
  noop,
59
57
  reify,
60
58
  sentinel,
@@ -1164,10 +1162,6 @@ class ClientRequest:
1164
1162
  """Set basic auth."""
1165
1163
  if auth is None:
1166
1164
  auth = self.auth
1167
- if auth is None and trust_env and self.url.host is not None:
1168
- netrc_obj = netrc_from_env()
1169
- with contextlib.suppress(LookupError):
1170
- auth = basicauth_from_netrc(netrc_obj, self.url.host)
1171
1165
  if auth is None:
1172
1166
  return
1173
1167
 
@@ -21,17 +21,16 @@ try:
21
21
  except ImportError: # pragma: no cover
22
22
  HAS_BROTLI = False
23
23
 
24
- if sys.version_info >= (3, 14):
25
- import compression.zstd # noqa: I900
24
+ try:
25
+ if sys.version_info >= (3, 14):
26
+ from compression.zstd import ZstdDecompressor # noqa: I900
27
+ else: # TODO(PY314): Remove mentions of backports.zstd across codebase
28
+ from backports.zstd import ZstdDecompressor
26
29
 
27
30
  HAS_ZSTD = True
28
- else:
29
- try:
30
- import zstandard
31
+ except ImportError:
32
+ HAS_ZSTD = False
31
33
 
32
- HAS_ZSTD = True
33
- except ImportError:
34
- HAS_ZSTD = False
35
34
 
36
35
  MAX_SYNC_CHUNK_SIZE = 1024
37
36
 
@@ -295,12 +294,9 @@ class ZSTDDecompressor:
295
294
  if not HAS_ZSTD:
296
295
  raise RuntimeError(
297
296
  "The zstd decompression is not available. "
298
- "Please install `zstandard` module"
297
+ "Please install `backports.zstd` module"
299
298
  )
300
- if sys.version_info >= (3, 14):
301
- self._obj = compression.zstd.ZstdDecompressor()
302
- else:
303
- self._obj = zstandard.ZstdDecompressor()
299
+ self._obj = ZstdDecompressor()
304
300
 
305
301
  def decompress_sync(self, data: bytes) -> bytes:
306
302
  return self._obj.decompress(data)
@@ -17,7 +17,9 @@ import time
17
17
  import weakref
18
18
  from collections import namedtuple
19
19
  from contextlib import suppress
20
+ from email.message import EmailMessage
20
21
  from email.parser import HeaderParser
22
+ from email.policy import HTTP
21
23
  from email.utils import parsedate
22
24
  from math import ceil
23
25
  from pathlib import Path
@@ -357,14 +359,40 @@ def parse_mimetype(mimetype: str) -> MimeType:
357
359
  )
358
360
 
359
361
 
362
+ class EnsureOctetStream(EmailMessage):
363
+ def __init__(self) -> None:
364
+ super().__init__()
365
+ # https://www.rfc-editor.org/rfc/rfc9110#section-8.3-5
366
+ self.set_default_type("application/octet-stream")
367
+
368
+ def get_content_type(self) -> str:
369
+ """Re-implementation from Message
370
+
371
+ Returns application/octet-stream in place of plain/text when
372
+ value is wrong.
373
+
374
+ The way this class is used guarantees that content-type will
375
+ be present so simplify the checks wrt to the base implementation.
376
+ """
377
+ value = self.get("content-type", "").lower()
378
+
379
+ # Based on the implementation of _splitparam in the standard library
380
+ ctype, _, _ = value.partition(";")
381
+ ctype = ctype.strip()
382
+ if ctype.count("/") != 1:
383
+ return self.get_default_type()
384
+ return ctype
385
+
386
+
360
387
  @functools.lru_cache(maxsize=56)
361
388
  def parse_content_type(raw: str) -> Tuple[str, MappingProxyType[str, str]]:
362
389
  """Parse Content-Type header.
363
390
 
364
391
  Returns a tuple of the parsed content type and a
365
- MappingProxyType of parameters.
392
+ MappingProxyType of parameters. The default returned value
393
+ is `application/octet-stream`
366
394
  """
367
- msg = HeaderParser().parsestr(f"Content-Type: {raw}")
395
+ msg = HeaderParser(EnsureOctetStream, policy=HTTP).parsestr(f"Content-Type: {raw}")
368
396
  content_type = msg.get_content_type()
369
397
  params = msg.get_params(())
370
398
  content_dict = dict(params[1:]) # First element is content type again
@@ -980,7 +980,7 @@ class DeflateBuffer:
980
980
  if not HAS_ZSTD:
981
981
  raise ContentEncodingError(
982
982
  "Can not decode content-encoding: zstandard (zstd). "
983
- "Please install `zstandard`"
983
+ "Please install `backports.zstd`"
984
984
  )
985
985
  self.decompressor = ZSTDDecompressor()
986
986
  else:
@@ -309,18 +309,12 @@ async def _run_app(
309
309
  port: Optional[int] = None,
310
310
  path: Union[PathLike, TypingIterable[PathLike], None] = None,
311
311
  sock: Optional[Union[socket.socket, TypingIterable[socket.socket]]] = None,
312
- shutdown_timeout: float = 60.0,
313
- keepalive_timeout: float = 75.0,
314
312
  ssl_context: Optional[SSLContext] = None,
315
313
  print: Optional[Callable[..., None]] = print,
316
314
  backlog: int = 128,
317
- access_log_class: Type[AbstractAccessLogger] = AccessLogger,
318
- access_log_format: str = AccessLogger.LOG_FORMAT,
319
- access_log: Optional[logging.Logger] = access_logger,
320
- handle_signals: bool = True,
321
315
  reuse_address: Optional[bool] = None,
322
316
  reuse_port: Optional[bool] = None,
323
- handler_cancellation: bool = False,
317
+ **kwargs: Any, # TODO(PY311): Use Unpack
324
318
  ) -> None:
325
319
  # An internal function to actually do all dirty job for application running
326
320
  if asyncio.iscoroutine(app):
@@ -328,16 +322,7 @@ async def _run_app(
328
322
 
329
323
  app = cast(Application, app)
330
324
 
331
- runner = AppRunner(
332
- app,
333
- handle_signals=handle_signals,
334
- access_log_class=access_log_class,
335
- access_log_format=access_log_format,
336
- access_log=access_log,
337
- keepalive_timeout=keepalive_timeout,
338
- shutdown_timeout=shutdown_timeout,
339
- handler_cancellation=handler_cancellation,
340
- )
325
+ runner = AppRunner(app, **kwargs)
341
326
 
342
327
  await runner.setup()
343
328
 
@@ -484,6 +469,7 @@ def run_app(
484
469
  reuse_port: Optional[bool] = None,
485
470
  handler_cancellation: bool = False,
486
471
  loop: Optional[asyncio.AbstractEventLoop] = None,
472
+ **kwargs: Any,
487
473
  ) -> None:
488
474
  """Run an app locally"""
489
475
  if loop is None:
@@ -515,6 +501,7 @@ def run_app(
515
501
  reuse_address=reuse_address,
516
502
  reuse_port=reuse_port,
517
503
  handler_cancellation=handler_cancellation,
504
+ **kwargs,
518
505
  )
519
506
  )
520
507
 
@@ -1034,6 +1034,21 @@ class UrlDispatcher(AbstractRouter, Mapping[str, AbstractResource]):
1034
1034
  resource_index = self._resource_index
1035
1035
  allowed_methods: Set[str] = set()
1036
1036
 
1037
+ # MatchedSubAppResource is primarily used to match on domain names
1038
+ # (though custom rules could match on other things). This means that
1039
+ # the traversal algorithm below can't be applied, and that we likely
1040
+ # need to check these first so a sub app that defines the same path
1041
+ # as a parent app will get priority if there's a domain match.
1042
+ #
1043
+ # For most cases we do not expect there to be many of these since
1044
+ # currently they are only added by `.add_domain()`.
1045
+ for resource in self._matched_sub_app_resources:
1046
+ match_dict, allowed = await resource.resolve(request)
1047
+ if match_dict is not None:
1048
+ return match_dict
1049
+ else:
1050
+ allowed_methods |= allowed
1051
+
1037
1052
  # Walk the url parts looking for candidates. We walk the url backwards
1038
1053
  # to ensure the most explicit match is found first. If there are multiple
1039
1054
  # candidates for a given url part because there are multiple resources
@@ -1051,21 +1066,6 @@ class UrlDispatcher(AbstractRouter, Mapping[str, AbstractResource]):
1051
1066
  break
1052
1067
  url_part = url_part.rpartition("/")[0] or "/"
1053
1068
 
1054
- #
1055
- # We didn't find any candidates, so we'll try the matched sub-app
1056
- # resources which we have to walk in a linear fashion because they
1057
- # have regex/wildcard match rules and we cannot index them.
1058
- #
1059
- # For most cases we do not expect there to be many of these since
1060
- # currently they are only added by `add_domain`
1061
- #
1062
- for resource in self._matched_sub_app_resources:
1063
- match_dict, allowed = await resource.resolve(request)
1064
- if match_dict is not None:
1065
- return match_dict
1066
- else:
1067
- allowed_methods |= allowed
1068
-
1069
1069
  if allowed_methods:
1070
1070
  return MatchInfoError(HTTPMethodNotAllowed(request.method, allowed_methods))
1071
1071
 
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohttp
3
- Version: 3.13.0
3
+ Version: 3.13.1
4
4
  Summary: Async http client/server framework (asyncio)
5
- Home-page: https://github.com/aio-libs/aiohttp
6
- Maintainer: aiohttp team <team@aiohttp.org>
7
- Maintainer-email: team@aiohttp.org
5
+ Maintainer-email: aiohttp team <team@aiohttp.org>
8
6
  License: Apache-2.0 AND MIT
7
+ Project-URL: Homepage, https://github.com/aio-libs/aiohttp
9
8
  Project-URL: Chat: Matrix, https://matrix.to/#/#aio-libs:matrix.org
10
9
  Project-URL: Chat: Matrix Space, https://matrix.to/#/#aio-libs-space:matrix.org
11
10
  Project-URL: CI: GitHub Actions, https://github.com/aio-libs/aiohttp/actions?query=workflow%3ACI
@@ -45,7 +44,7 @@ Provides-Extra: speedups
45
44
  Requires-Dist: aiodns>=3.3.0; extra == "speedups"
46
45
  Requires-Dist: Brotli; platform_python_implementation == "CPython" and extra == "speedups"
47
46
  Requires-Dist: brotlicffi; platform_python_implementation != "CPython" and extra == "speedups"
48
- Requires-Dist: zstandard; (platform_python_implementation == "CPython" and python_version < "3.14") and extra == "speedups"
47
+ Requires-Dist: backports.zstd; (platform_python_implementation == "CPython" and python_version < "3.14") and extra == "speedups"
49
48
  Dynamic: license-file
50
49
 
51
50
  ==================================
@@ -1,17 +1,17 @@
1
- aiohttp-3.13.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
- aiohttp-3.13.0.dist-info/METADATA,sha256=MMgGAtplXaCYPIJajnkzKVOSQolGCMLIMMhrr1XaCLM,8147
3
- aiohttp-3.13.0.dist-info/RECORD,,
4
- aiohttp-3.13.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- aiohttp-3.13.0.dist-info/WHEEL,sha256=v3CwFJX9-QMowLIlszvrAdfnNSqWxeOcrw1gNsvZZeE,193
6
- aiohttp-3.13.0.dist-info/licenses/LICENSE.txt,sha256=n4DQ2311WpQdtFchcsJw7L2PCCuiFd3QlZhZQu2Uqes,588
7
- aiohttp-3.13.0.dist-info/licenses/vendor/llhttp/LICENSE,sha256=68qFTgE0zSVtZzYnwgSZ9CV363S6zwi58ltianPJEnc,1105
8
- aiohttp-3.13.0.dist-info/top_level.txt,sha256=iv-JIaacmTl-hSho3QmphcKnbRRYx1st47yjz_178Ro,8
1
+ aiohttp-3.13.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ aiohttp-3.13.1.dist-info/METADATA,sha256=ohV0YRJDiQMjtAViNzumXljaLwMz4BLFmVDJXrqw6cU,8135
3
+ aiohttp-3.13.1.dist-info/RECORD,,
4
+ aiohttp-3.13.1.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
+ aiohttp-3.13.1.dist-info/WHEEL,sha256=v3CwFJX9-QMowLIlszvrAdfnNSqWxeOcrw1gNsvZZeE,193
6
+ aiohttp-3.13.1.dist-info/licenses/LICENSE.txt,sha256=n4DQ2311WpQdtFchcsJw7L2PCCuiFd3QlZhZQu2Uqes,588
7
+ aiohttp-3.13.1.dist-info/licenses/vendor/llhttp/LICENSE,sha256=68qFTgE0zSVtZzYnwgSZ9CV363S6zwi58ltianPJEnc,1105
8
+ aiohttp-3.13.1.dist-info/top_level.txt,sha256=iv-JIaacmTl-hSho3QmphcKnbRRYx1st47yjz_178Ro,8
9
9
  aiohttp/.hash/_cparser.pxd.hash,sha256=pjs-sEXNw_eijXGAedwG-BHnlFp8B7sOCgUagIWaU2A,121
10
10
  aiohttp/.hash/_find_header.pxd.hash,sha256=_mbpD6vM-CVCKq3ulUvsOAz5Wdo88wrDzfpOsMQaMNA,125
11
11
  aiohttp/.hash/_http_parser.pyx.hash,sha256=ju4DG_uNv8rTD6pu3IunE1ysx3ZbH4OjiQHUb_URSoA,125
12
12
  aiohttp/.hash/_http_writer.pyx.hash,sha256=9txOh7t7c3y-vLmiuEY5dltmXvEo0CYyU4U853yyv9E,125
13
13
  aiohttp/.hash/hdrs.py.hash,sha256=v6IaKbsxjsdQxBzhb5AjP0x_9G3rUe84D7avf7AI4cs,116
14
- aiohttp/__init__.py,sha256=V8eLpNvuyUF7ZLcqI6e1ydaeZSwnDQZXcL_ouRH-mCo,8302
14
+ aiohttp/__init__.py,sha256=mzVOT0ZynvvN9RnDC_TZSLQmII3JiGsjo2ZwoCFf5LU,8302
15
15
  aiohttp/__pycache__/__init__.cpython-310.pyc,,
16
16
  aiohttp/__pycache__/_cookie_helpers.cpython-310.pyc,,
17
17
  aiohttp/__pycache__/abc.cpython-310.pyc,,
@@ -92,22 +92,22 @@ aiohttp/_websocket/reader_py.py,sha256=gSsE_iSBr7-ORvOmgkCT7Jpj4_j3854i_Cp88Se1_
92
92
  aiohttp/_websocket/writer.py,sha256=9qCnQnCFwPmvf6U6i_7VfTldjpcDfQ_ojeCv5mXoMkw,7139
93
93
  aiohttp/abc.py,sha256=M66F4S6m00bIEn7y4ha_XLTMDmVQ9dPihfOVB0pGfOo,7149
94
94
  aiohttp/base_protocol.py,sha256=Tp8cxUPQvv9kUPk3w6lAzk6d2MAzV3scwI_3Go3C47c,3025
95
- aiohttp/client.py,sha256=UmwwoDurmDDvxTwa4e1VElko4mc8_Snsvs3CA6SE-kc,57584
95
+ aiohttp/client.py,sha256=nYTIOdQgmeXb6qLqg7zeO4DZBSP6omK1vNQAELG3fdg,58656
96
96
  aiohttp/client_exceptions.py,sha256=uyKbxI2peZhKl7lELBMx3UeusNkfpemPWpGFq0r6JeM,11367
97
97
  aiohttp/client_middleware_digest_auth.py,sha256=BIoQJ5eWL5NNkPOmezTGrceWIho8ETDvS8NKvX-3Xdw,17088
98
98
  aiohttp/client_middlewares.py,sha256=kP5N9CMzQPMGPIEydeVUiLUTLsw8Vl8Gr4qAWYdu3vM,1918
99
99
  aiohttp/client_proto.py,sha256=56_WtLStZGBFPYKzgEgY6v24JkhV1y6JEmmuxeJT2So,12110
100
- aiohttp/client_reqrep.py,sha256=ckYUCHgbyr23-ypiZYNxvIQTsMpMVtoTLniNij4OlXg,53668
100
+ aiohttp/client_reqrep.py,sha256=eEREDrZ0M8ZFTt1wjHduR-P8_sm40K65gNz-iMGYask,53391
101
101
  aiohttp/client_ws.py,sha256=1CIjIXwyzOMIYw6AjUES4-qUwbyVHW1seJKQfg_Rta8,15109
102
- aiohttp/compression_utils.py,sha256=JvEDGV2QXjYXT4Q_rjr1su-SrENoSjHiuDAScr05fJk,9632
102
+ aiohttp/compression_utils.py,sha256=skLoJxkQoKmFgrPshkMNWf2zMso2w97EK44a1SvnU_U,9600
103
103
  aiohttp/connector.py,sha256=WQetKoSW7XnHA9r4o9OWwO3-n7ymOwBd2Tg_xHNw0Bs,68456
104
104
  aiohttp/cookiejar.py,sha256=e28ZMQwJ5P0vbPX1OX4Se7-k3zeGvocFEqzGhwpG53k,18922
105
105
  aiohttp/formdata.py,sha256=xqYMbUo1qoLYPuzY92XeR4pyEe-w-DNcToARDF3GUhA,6384
106
106
  aiohttp/hdrs.py,sha256=2rj5MyA-6yRdYPhW5UKkW4iNWhEAlGIOSBH5D4FmKNE,5111
107
- aiohttp/helpers.py,sha256=bblNEhp4hFimEmxMdPNxEluBY17L5YUArHYvoxzoEe4,29614
107
+ aiohttp/helpers.py,sha256=Q1307PCEnWz4RP8crUw8dk58c0YF2Ei3JywkKfRxz5E,30629
108
108
  aiohttp/http.py,sha256=8o8j8xH70OWjnfTWA9V44NR785QPxEPrUtzMXiAVpwc,1842
109
109
  aiohttp/http_exceptions.py,sha256=AZafFHgtAkAgrKZf8zYPU8VX2dq32-VAoP-UZxBLU0c,2960
110
- aiohttp/http_parser.py,sha256=nXizX63zytOxjVyEds0CPuvFKa9MY96Zfv5hpZjPAhY,37372
110
+ aiohttp/http_parser.py,sha256=fACBNI47n9hnVPWfm5AJufuezsoYOF_VLp4bptYjvQI,37377
111
111
  aiohttp/http_websocket.py,sha256=8VXFKw6KQUEmPg48GtRMB37v0gTK7A0inoxXuDxMZEc,842
112
112
  aiohttp/http_writer.py,sha256=fbRtKPYSqRbtAdr_gqpjF2-4sI1ESL8dPDF-xY_mAMY,12446
113
113
  aiohttp/log.py,sha256=BbNKx9e3VMIm0xYjZI0IcBBoS7wjdeIeSaiJE7-qK2g,325
@@ -122,7 +122,7 @@ aiohttp/tcp_helpers.py,sha256=BSadqVWaBpMFDRWnhaaR941N9MiDZ7bdTrxgCb0CW-M,961
122
122
  aiohttp/test_utils.py,sha256=ZJSzZWjC76KSbtwddTKcP6vHpUl_ozfAf3F93ewmHRU,23016
123
123
  aiohttp/tracing.py,sha256=-6aaW6l0J9uJD45LzR4cijYH0j62pt0U_nn_aVzFku4,14558
124
124
  aiohttp/typedefs.py,sha256=wUlqwe9Mw9W8jT3HsYJcYk00qP3EMPz3nTkYXmeNN48,1657
125
- aiohttp/web.py,sha256=sG_U41AY4S_LBY9sReiBzXKJRZpXk8xgiE_l5S_UPPg,18390
125
+ aiohttp/web.py,sha256=JzSNmejg5G6YeFAnkIgZfytqbU86sNu844yYKmoUpqs,17852
126
126
  aiohttp/web_app.py,sha256=lGU_aAMN-h3wy-LTTHi6SeKH8ydt1G51BXcCspgD5ZA,19452
127
127
  aiohttp/web_exceptions.py,sha256=7nIuiwhZ39vJJ9KrWqArA5QcWbUdqkz2CLwEpJapeN8,10360
128
128
  aiohttp/web_fileresponse.py,sha256=Xzau8EMrWNrFg3u46h4UEteg93G4zYq94CU6vy0HiqE,16362
@@ -134,6 +134,6 @@ aiohttp/web_response.py,sha256=PKcziNU4LmftXqKVvoRMrAbOeVClpSN-iznHsiWezmU,29341
134
134
  aiohttp/web_routedef.py,sha256=VT1GAx6BrawoDh5RwBwBu5wSABSqgWwAe74AUCyZAEo,6110
135
135
  aiohttp/web_runner.py,sha256=v1G1nKiOOQgFnTSR4IMc6I9ReEFDMaHtMLvO_roDM-A,11786
136
136
  aiohttp/web_server.py,sha256=-9WDKUAiR9ll-rSdwXSqG6YjaoW79d1R4y0BGSqgUMA,2888
137
- aiohttp/web_urldispatcher.py,sha256=abp8PZnSfXPB89vS_9kJUenrXOu48bjTEjbHndXZ_48,44060
137
+ aiohttp/web_urldispatcher.py,sha256=3ryu1ZOpcq79IYNMd6EjYWmQ_i6JbsJzS_IaV0yoYBg,44203
138
138
  aiohttp/web_ws.py,sha256=lItgmyatkXh0M6EY7JoZnSZkUl6R0wv8B88X4ILqQbU,22739
139
139
  aiohttp/worker.py,sha256=zT0iWN5Xze194bO6_VjHou0x7lR_k0MviN6Kadnk22g,8152
@@ -4,4 +4,4 @@ setproctitle-1.2.2.dist-info/RECORD,,
4
4
  setproctitle-1.2.2.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  setproctitle-1.2.2.dist-info/WHEEL,sha256=EnThCQWSFCE_cPaYba2K-Xw_FwJ6VliZcmVkwdlMBZ0,105
6
6
  setproctitle-1.2.2.dist-info/top_level.txt,sha256=khlu2SuNEK2Ct594XhMTT62ll8p0oFza-4dmzUFTBhQ,13
7
- setproctitle.cpython-310-aarch64-linux-gnu.so,sha256=fHxk8SlBOyxk75JrI9oqjC4mNuuO7vyA3rSl6QY-QCc,120536
7
+ setproctitle.cpython-310-aarch64-linux-gnu.so,sha256=KxDvOCcJ6ZumOcA3BKabmTRLS8pv9CLrbd5lDm-LXpo,120536