From cf4b2173dd5d659b0d312dcf5fe77555aee4f8e7 Mon Sep 17 00:00:00 2001 From: Astra Clelia Bertelli Date: Wed, 21 May 2025 20:42:22 +0200 Subject: [PATCH] Add support for streaming by using websockets --- README.md | 14 ++- pyproject.toml | 1 + scripts/404.png | Bin 37240 -> 0 bytes scripts/app_frontend.py | 22 ---- scripts/blurry.jpg | Bin 0 -> 28756 bytes scripts/client.py | 39 ++++++ scripts/main.py | 31 ----- scripts/server.py | 28 +++++ uv.lock | 265 ++++++++++++++++++++-------------------- 9 files changed, 214 insertions(+), 186 deletions(-) delete mode 100644 scripts/404.png delete mode 100644 scripts/app_frontend.py create mode 100644 scripts/blurry.jpg create mode 100644 scripts/client.py delete mode 100644 scripts/main.py create mode 100644 scripts/server.py diff --git a/README.md b/README.md index d71c5e3..45a79ff 100644 --- a/README.md +++ b/README.md @@ -46,13 +46,21 @@ export OPENAI_API_KEY="sk-***" ## Launching -While still being in the `scripts` sub-folder, you can launch the project with: +While still being in the `scripts` sub-folder, you can launch the backend of the project with: ```bash -uvicorn main:app --host 0.0.0.0 --port 8000 +python3 server.py ``` -With this command, you'll have the application running on http://localhost:8000 and you will be able to interact with it! +You will se a log message telling you that the websocket server has been started on port 8765. + +After the websocket has connected, launch the frontend from another terminal window (remaining in the `scripts` sub-folder and with the virtual environment active), using: + +```bash +python3 client.py +``` + +With this command, you'll have the application running on http://localhost:7860 and you will be able to interact with it! ## How does it work? diff --git a/pyproject.toml b/pyproject.toml index 970cd17..d620a25 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,7 @@ dependencies = [ "orjson>=3.10.18", "pre-commit>=4.2.0", "uvicorn>=0.34.2", + "websockets>=15.0.1", ] description = "Image Generation Agent" license = "MIT" diff --git a/scripts/404.png b/scripts/404.png deleted file mode 100644 index ab395047f53bc396dee25d88be698ec61cab1564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37240 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 400: - return "404.png", "An error has occurred while generating the image", f"Error: {res.text}" - else: - return "output.png", res.json()["process"], res.json()["response"] - -with gr.Blocks(theme=gr.themes.Citrus(primary_hue="indigo", secondary_hue="teal")) as frontend: - gr.HTML("

Image Generation Agent🎨

") - gr.HTML("

Get stunning AI-generated images!

") - with gr.Row(): - usr_txt = gr.Textbox(label="Prompt", placeholder="Describe the image you want here...") - with gr.Column(): - gen_img = gr.Image(label="Generated Image") - with gr.Accordion(label="Agent Output", open=False): - resp = gr.Markdown(label="Agent Response", container=True) - proc = gr.Markdown(label="Agent Process", container=True) - with gr.Row(): - btn = gr.Button("Generate🖌️").click(fn=generate_image_for_user, inputs=[usr_txt], outputs=[gen_img, proc, resp]) diff --git a/scripts/blurry.jpg b/scripts/blurry.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e15141545107d205b341c762e605c27904acf5f7 GIT binary patch literal 28756 zcmb5Vd0did`##Jfq==2%t)kNmQYzf$2H0XvgA0xsF2IfDlDUT#W0pB)n_@aj+GuKt zOCcfxE?F*9^H|}MnOfo2n9fsXIjPk%)>vPsY585w^ZS0@_w)YuQXi-rxPkLJuj4$< z<2din6Q8G1#{RzBeNkvM3WWxLP@kWmtk~&^2`JR|?J!Co_5a*HPoca~IINzY9u^1g za5x-(6;Xc`xP4)0Xh1ai!qn8{3lkGFi!UwB%&j346DwOQ>ose>{`zY(OUgRRSL?p~ z>g%soPJ#w+U4>t@T3>(lSLP<>U;Y2Seb%B(^z~ZwTCive3S)xCnxH@TqHMsA`0wq1 zzcU(x!s1uq^uUu2#^4uXQCKtzgTb!63jAD*iJPq_H##NDw2NL`<8^uXHFzQE|8ov- zE;I(GhXqernEdm;|2_N4BlzG+6mjLOCRh{Hx2R7lwH|WxE8mODvFwxjq|tQ~PfF%U zv%%gTMaY6Yj-eBK+XU(X}g7m5Ph@3Z)tBu_GU_t4vpp9PRL4^F^hBDrJ zpOE!uN;G*FA$=E(PXrr5mP^nhf1AyT9car&eCWlZzI5XHcx2pv~ll#@HKmf^}^VC}q4XTEf;7qw{9rij?X z6-!#-kk%#i(k^TFd2wb6I7ka^_x^Vspo$~UQ|V}BM=`1 z7x?7~{k>@fN#0CxQXM#;YAEBHYJ!n%W^h)d2cI@gy_f&|4y$}EtQxR_2pmsd>0n2u ziWjf5NWi(CvKp{5WJYbFMe&V_=yPw^iyI75L6k+;>A8GGn+n!Go?VWgzOHg7R>=4~5UGTc2OqNml5Q;}dXRrt^ zMwXdH$*UBr7LN1NT|Rhj%pWWcJ+ytW1-AhIF($yV1p%vWDeS%Lx8IGm`7Tm>kA$vb zovWgoBq9rl1lhpqu{L(&x^Z!VAa0oRpHZ((_$p0qs)*l>PvJ5&VvXSF$X?=m=cMt? zZTHG0odTyx2go?}LQK`nbc3YIYle2Z%w$)#LR0Mv7f7lRPO#>5wU0*pOYCtt<-Sd7 zXYwcUYfZHe!VbM)=5h;De{10RCe`WPcF3WNmLPFWXr-2;o1_9NY<_Xfl2+zA0M9O| z@?zj890a#x;R4cwKKfhq)|8u3@PYjBzi_@d!hnB0F4nn+THDfZ);8eD*`$p&YFR(h z;+B=g8EFC8nf%>{8(Qt9uS4y_vJ!q19mAi~>`_PUOrP8?MURI3MlR_X-DPxzIfdzo z$0tNZr?aQ=2^OskTtWi067LS;m?$gfiMh1}sv_z-`P|aoIg}#!E7e9ZCOO{1Ge%bBhP&4=Vz;bk$Wt#bPW?`{VOY3#Q}+NSn5ww{eicUuzvE$VCe;xAHKwX0LHbD7JCk#ab0 z)!8AUi+(3+NDH!kNc(H%BXo+iJR~71Apsx2#QG-aJ!(&o;V4VE=_R4wz0)J#=q%NP zns?}pYNf>B#;Aawfst!oo15_kXQ|u1AuiqytSleZw0X<6GKMBJxAT~8m*?N%4>x~g zo(d_tcSWJY{JY-o%k;+d@)U@F$4Ya=Q!aDmLxmhY<m1t8np~gR9{DDR3s&%-Q5M| zxI+yp*bNG|I+)4$6tHP8s~VFvT)1fjUF9)>;GcSr&KwB2;5;

Xo?j_fD+ED=GJEn(|0gSJx!%9VRw- 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 z zbeQFXg$k%}!!2F>kIj=UzcjZ@YcFhHG{?AEek~DqN1Y_e~B6n@{3Tf}WM*n!?^Ipx~ax z&&axriVeu<%HqKvhPXk;AQr+_d=_ukaEDVzYeL6fk+tdq+dX76y~~?DF;1nw{8aX` zS|fZ``7d|R7J8s%*Jx~rDV92`Yp6=HjwQ>wN;EolP1(kaWY(UU9Rn$4pB}H^1&EyE z*7zaJj5WRuGfs-#<&TqS;yY-ehy<9P$r%hmhy2=>7jDaw*ZUDD6@50>k~`1ft6a6k zQMx$-*uAq6^sha;ihd?4O1JplO8T#>qy^{g>0Bb&qj?dsYNHxOt=^2$a%LIj1ZtM@ z-cVRlc9+ilEu-vC$<;T|M>`?o%S+oQWdcBE$*if9Ri+ydKn;g1`zKpqs({GjHvye@ zE$>1JAMvkVC}t}Xm86#iF&Cke3|)p1`@wDCR7agO1+Opd?(cKRXa9L)1%8XoknF?$ zphmVAPqjL$(p6xlY)l(@;s;Dt6;{-W{W(a{JQ%^8F4)-zF96 z{ZZQf+YxsVu=V%dB^JLGekYPuk?f`mR`7D+DrbmbzRCWNo$o?5S`gn?Wr1w>2c7|+ zd0pWOSwHA4tRk&@L_+S?b^=i;m<1eEzak|ep(+hKc;ci&Wp9l<{~pDK?^i}yk8W;{&Z1v zE|Yve(#DV^GUd%;fLyo%4+8;bV9rqKVS*qe-(+QaA_2>?njK%Bz-wwAri1&;5f(H$ z+99GTwi-HrXR9&M!r(7xOfj)1=sd_msZ zdxp=)kNAp7sB!`cMTWvC6)!hGj&HTegbgM~+5l_~;aV(79jaYPyoe_4=||K zPE+n4`w{#*)zLm2F$FU&U(hm`>8Mi%q@JV2K~|5!!1XtZA8(jL;95WUR0*InB*_Fn zDnv&U<2NF$2;|tv;AUiJbs5Y=!Ip83r-W zD(@h^Z3yUg^J4=|R&r1WAO;}egd$weL-R32WuUI>>$6HVVK0c^7JF?%E5aK+%Bv*OT?%@%4;7<$h!a2wHHctY{ z7IYuDP$Ha|=x_xK4;c8u1QEhk*`kbyqr`hAz-;9>B}`uOv>m; zf@=o^w26r?sBJ(@;4=xZOzv)jrH1l(2ceKDQ^(Bev}0cI zI@b8sWf%y;1koKUBTh)`&&wx*8dbMI8MoC93M(3=gmn&mIV zBPVYO=l@ydW{7ps`}nSpwO_wmTeJw#?ev%!j9054KAZG@mG>!l=M*)3#*n|@v7->Y z3<-j<@scdwikVF$Es%-g0d+vBNkSMRq~_5A=>+Bs2}h_w+PJ)XPHTBq@L+*yZdU!4IS0nrR61zE4t?q?e2s6{$tXxSvK@Tdt4kMkr zNcJL0eWJk=uEZo9l$Ksrm06 zTBYN?rsetrvPAMHuPF^b?B2IKM!-t4SiQL#9(xaw^(Bo1W%>_%8F)=^vow@A_wbpC&R?~8?% zIxEF0VmQloLqjTH@Qx&aeh9gT+$Kmp+A$!CjTgc*myn8-r3a|t+`lxXtz@XnCWNHp z1Deq&|AEX0D)1zh`$_@&c)dI3CD|f+jSXdsV{4}d4IuTNXiz(C?NoDINlafZAc_E_ z!ESQMYU!c-@L;2DDgKO^p(Hg$+$7~dE8e_x2=I0M2TDi=Oxb``#jrA9AI$r`c{g1E z`)&{l0Vhn1PnYKaBQOQF`oaSsL^tRH$@wsVImage Generation Agent🎨") + gr.HTML("

Get stunning AI-generated images!

") + with gr.Row(): + usr_txt = gr.Textbox(label="Prompt", placeholder="Describe the image you want here...") + with gr.Column(): + resp = gr.Markdown(label="Agent Output", container=True, show_label=True, show_copy_button=True) + gen_img = gr.Image(label="Generated Image") + + + with gr.Row(): + btn = gr.Button("Generate🖌️").click(fn=websocket_chat, inputs=[usr_txt], outputs=[resp, gen_img]) + + frontend.launch() + +if __name__ == "__main__": + launch_interface() diff --git a/scripts/main.py b/scripts/main.py deleted file mode 100644 index 2f10fcf..0000000 --- a/scripts/main.py +++ /dev/null @@ -1,31 +0,0 @@ -import json -from app_frontend import gr, frontend -from workflow import workflow -from fastapi import FastAPI -from fastapi.responses import ORJSONResponse -from pydantic import BaseModel -from llama_index.core.agent.workflow import ToolCall, ToolCallResult - -app = FastAPI(default_response_class=ORJSONResponse) - -class ApiInput(BaseModel): - prompt: str - -class ApiOutput(BaseModel): - process: str - response: str - -@app.post("/agent") -async def run_agent(inpt: ApiInput) -> ApiOutput: - handler = workflow.run(user_msg=inpt.prompt) - process = "" - async for event in handler.stream_events(): - if isinstance(event, ToolCallResult): - process += f"Tool call result for **{event.tool_name}**:\n\n```json\n{event.tool_output.model_dump_json(indent=4)}\n```\n" - elif isinstance(event, ToolCall): - process += f"Calling tool **{event.tool_name}** with input args:\n\n```json\n{json.dumps(event.tool_kwargs, indent=4)}\n```\n" - response = await handler - response = str(response) - return ApiOutput(process=process, response=response) - -app = gr.mount_gradio_app(app, frontend, "") diff --git a/scripts/server.py b/scripts/server.py new file mode 100644 index 0000000..d59ff99 --- /dev/null +++ b/scripts/server.py @@ -0,0 +1,28 @@ +# server.py +import json +import asyncio +import websockets +from workflow import workflow +from llama_index.core.agent.workflow.workflow_events import ToolCall, ToolCallResult + +async def run_agent(websocket): + async for prompt in websocket: + handler = workflow.run(user_msg=prompt) + async for event in handler.stream_events(): + print(type(event)) + if isinstance(event, ToolCallResult): + await websocket.send(f"**Result from `{event.tool_name}`**:\n\n{event.tool_output.content}\n\n") + elif isinstance(event, ToolCall): + await websocket.send(f"### Calling tool: `{event.tool_name}`\n\n```json\n{json.dumps(event.tool_kwargs, indent=4)}\n```\n\n") + response = await handler + response = str(response) + await websocket.send("### Final output\n\n" + response) + await websocket.send("[END]") + +async def main(): + print("Starting server on ws://localhost:8765") + async with websockets.serve(run_agent, "localhost", 8765): + await asyncio.Future() # Run forever + +if __name__ == "__main__": + asyncio.run(main()) diff --git a/uv.lock b/uv.lock index 2571537..71d7178 100644 --- a/uv.lock +++ b/uv.lock @@ -768,16 +768,16 @@ wheels = [ [[package]] name = "google-auth" -version = "2.40.1" +version = "2.40.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, { name = "pyasn1-modules" }, { name = "rsa" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/94/a5/38c21d0e731bb716cffcf987bd9a3555cb95877ab4b616cfb96939933f20/google_auth-2.40.1.tar.gz", hash = "sha256:58f0e8416a9814c1d86c9b7f6acf6816b51aba167b2c76821965271bac275540", size = 280975, upload-time = "2025-05-07T01:04:55.3Z" } +sdist = { url = "https://files.pythonhosted.org/packages/66/84/f67f53c505a6b2c5da05c988e2a5483f5ba9eee4b1841d2e3ff22f547cd5/google_auth-2.40.2.tar.gz", hash = "sha256:a33cde547a2134273226fa4b853883559947ebe9207521f7afc707efbf690f58", size = 280990, upload-time = "2025-05-21T18:04:59.816Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a1/b1/1272c6e80847ba5349f5ccb7574596393d1e222543f5003cb810865c3575/google_auth-2.40.1-py2.py3-none-any.whl", hash = "sha256:ed4cae4f5c46b41bae1d19c036e06f6c371926e97b19e816fc854eff811974ee", size = 216101, upload-time = "2025-05-07T01:04:53.612Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c7/e2d82e6702e2a9e2311c138f8e1100f21d08aed0231290872b229ae57a86/google_auth-2.40.2-py2.py3-none-any.whl", hash = "sha256:f7e568d42eedfded58734f6a60c58321896a621f7c116c411550a4b4a13da90b", size = 216102, upload-time = "2025-05-21T18:04:57.547Z" }, ] [[package]] @@ -1099,6 +1099,7 @@ dependencies = [ { name = "orjson" }, { name = "pre-commit" }, { name = "uvicorn" }, + { name = "websockets" }, ] [package.metadata] @@ -1112,6 +1113,7 @@ requires-dist = [ { name = "orjson", specifier = ">=3.10.18" }, { name = "pre-commit", specifier = ">=4.2.0" }, { name = "uvicorn", specifier = ">=0.34.2" }, + { name = "websockets", specifier = ">=15.0.1" }, ] [[package]] @@ -1372,21 +1374,21 @@ wheels = [ [[package]] name = "llama-cloud" -version = "0.1.21" +version = "0.1.22" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, { name = "httpx" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/89/70/cbd4078ed7bd1b8b545f6c9352ffbb54994bb289a991a2b63a4c475f7941/llama_cloud-0.1.21.tar.gz", hash = "sha256:5676d54e4650d293691f5ced1597d74d489b33fd41f51d677b3fd35f56df693e", size = 91475, upload-time = "2025-05-08T19:37:02.324Z" } +sdist = { url = "https://files.pythonhosted.org/packages/fa/a8/166ebe7cd0e62bd472cbcee2e0cb5995296db4802caf378a3e38456f916b/llama_cloud-0.1.22.tar.gz", hash = "sha256:5d938273692da50f73301aadfed1b4b10f94dfbebb9f1e131c031e033ebb2a7f", size = 91706, upload-time = "2025-05-20T16:14:18.839Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4a/fb/21e4190f80d7f80bd42abdfbbdbb88c21a98fff0a05a39d74ef747b7d462/llama_cloud-0.1.21-py3-none-any.whl", hash = "sha256:a10b437f8623f341108d4be8f4ff0eb5809022fee0c05f198d36ad51b60fff30", size = 265819, upload-time = "2025-05-08T19:37:01.081Z" }, + { url = "https://files.pythonhosted.org/packages/4c/94/037a5b4b3708e7f7528508d2076d7e1485d447d53361e8d4eb56db8654b1/llama_cloud-0.1.22-py3-none-any.whl", hash = "sha256:2515e2ee20c03958f619135be1fe69ea4757d56281840a04c76adeb9efd77a30", size = 265950, upload-time = "2025-05-20T16:14:17.415Z" }, ] [[package]] name = "llama-cloud-services" -version = "0.6.15" +version = "0.6.23" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -1397,9 +1399,9 @@ dependencies = [ { name = "pydantic" }, { name = "python-dotenv" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/56/4e/da311d13340d22705d6ae48732c78a580039f132dfcaa68a7063b066c38c/llama_cloud_services-0.6.15.tar.gz", hash = "sha256:912799d9cdcf48074145c6781f40a6dd7dadb6344ecb30b715407db85a0e675e", size = 31701, upload-time = "2025-04-24T03:39:46.551Z" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/ce/2bc4e11a12e7d432cbd905444732b717692bb3b98eef2558fa4764ff6c54/llama_cloud_services-0.6.23.tar.gz", hash = "sha256:226e14b47b2f7e1d0029b4e64074c46e84f52526478196c59e6be02f528be0f6", size = 32147, upload-time = "2025-05-20T16:48:22.943Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f5/0d/88805be6a13b368c9e7a2b2cede60fd0298e0e3abc9a6a6923d414c1ab14/llama_cloud_services-0.6.15-py3-none-any.whl", hash = "sha256:c4e24dd41f2cde17eeba7750d41cc70fe26e1179c03ae832122d762572e53de6", size = 36676, upload-time = "2025-04-24T03:39:45.217Z" }, + { url = "https://files.pythonhosted.org/packages/12/43/d1e53b856bc9a96548dea06ee96a6b61260d30ae1a52e885e63c13e47e84/llama_cloud_services-0.6.23-py3-none-any.whl", hash = "sha256:f02dc6531a314c179064c28e296c961ad92ad82ca254704eba1728af084598a6", size = 37116, upload-time = "2025-05-20T16:48:21.62Z" }, ] [[package]] @@ -1616,14 +1618,14 @@ wheels = [ [[package]] name = "llama-parse" -version = "0.6.12" +version = "0.6.23" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "llama-cloud-services" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c4/27/8014c38cab1e9664153157d3c8693af726c0f7ae0c93adaebace5da688d7/llama_parse-0.6.12.tar.gz", hash = "sha256:c99593fb955c338a69e64a2ec449e09753afe6dcff239ab050989fda74839867", size = 3673, upload-time = "2025-04-11T17:27:49.525Z" } +sdist = { url = "https://files.pythonhosted.org/packages/11/30/8170f31a139314479dafea5e2140405e5127207fbc95056aedee01d6b7fd/llama_parse-0.6.23.tar.gz", hash = "sha256:ee575d12660de57264900ae414e7c61646db9fbdd030fd795fb4ce4d28d83f85", size = 3537, upload-time = "2025-05-20T16:49:52.716Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ac/ca/71c9367d3e89d61da2462f535dea1a3a09d4a4085b96f2c9ef5c38864820/llama_parse-0.6.12-py3-none-any.whl", hash = "sha256:2dd1c74b0cba1a2bc300286f6b91a650f6ddc396acfce3497ba3d72d43c53fac", size = 4853, upload-time = "2025-04-11T17:27:48.223Z" }, + { url = "https://files.pythonhosted.org/packages/cd/53/a7e06181f36eaff6c7176e33644db2f19a7761fc9110f0a5d13759ce94ac/llama_parse-0.6.23-py3-none-any.whl", hash = "sha256:8290b08c28fb6cec17b22df7bf37678bbf4f76e8864eccefdbe5d4c04b0e994a", size = 4944, upload-time = "2025-05-20T16:49:50.647Z" }, ] [[package]] @@ -2142,7 +2144,7 @@ wheels = [ [[package]] name = "openai" -version = "1.79.0" +version = "1.80.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -2154,9 +2156,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/cf/4901077dbbfd0d82a814d721600fa0c3a61a093d7f0bf84d0e4732448dc9/openai-1.79.0.tar.gz", hash = "sha256:e3b627aa82858d3e42d16616edc22aa9f7477ee5eb3e6819e9f44a961d899a4c", size = 444736, upload-time = "2025-05-16T19:49:59.738Z" } +sdist = { url = "https://files.pythonhosted.org/packages/23/9a/b47f1b91a030e8f7d1a37fbfb1c123b81e0a8896579cf80e17599434dcef/openai-1.80.0.tar.gz", hash = "sha256:65b9b0442e8d3bee49857e92ee7b873dfcebbac52b9451fe80d451adfac98b90", size = 450620, upload-time = "2025-05-21T16:40:45.778Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/81/d2/e3992bb7c6641b765c1008e3c96e076e0b50381be2cce344e6ff177bad80/openai-1.79.0-py3-none-any.whl", hash = "sha256:d5050b92d5ef83f869cb8dcd0aca0b2291c3413412500eec40c66981b3966992", size = 683334, upload-time = "2025-05-16T19:49:57.445Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bd/e01b0a2bef27addbe521b505fbea0f416ff3408fba7afb66236aee1f8bf0/openai-1.80.0-py3-none-any.whl", hash = "sha256:c436bf636327245ebae3246a78c7adc5adf81c04ae8699fec580c7fd21b08cdf", size = 701430, upload-time = "2025-05-21T16:40:43.569Z" }, ] [[package]] @@ -2927,123 +2929,126 @@ wheels = [ [[package]] name = "rpds-py" -version = "0.25.0" +version = "0.25.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/96/d2/7bed8453e53f6c9dea7ff4c19ee980fd87be607b2caf023d62c6579e6c30/rpds_py-0.25.0.tar.gz", hash = "sha256:4d97661bf5848dd9e5eb7ded480deccf9d32ce2cd500b88a26acbf7bd2864985", size = 26822, upload-time = "2025-05-15T13:42:03.815Z" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/a6/60184b7fc00dd3ca80ac635dd5b8577d444c57e8e8742cecabfacb829921/rpds_py-0.25.1.tar.gz", hash = "sha256:8960b6dac09b62dac26e75d7e2c4a22efb835d827a7278c34f72b2b84fa160e3", size = 27304, upload-time = "2025-05-21T12:46:12.502Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ad/07/c4ec43c36b68dcf9006481f731df018e5b0ad0c35dff529eb92af4e2764a/rpds_py-0.25.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:c146a24a8f0dc4a7846fb4640b88b3a68986585b8ce8397af15e66b7c5817439", size = 373212, upload-time = "2025-05-15T13:38:11.294Z" }, - { url = "https://files.pythonhosted.org/packages/89/ed/1ddadccc90840f7d7f7d71ef41e535ddd7facb15413963e0f3d6aa613fc9/rpds_py-0.25.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:77814c7a4e1dc43fba73aeb4c1ef0fe37d901f3aa869a4823de5ea843a283fd0", size = 358891, upload-time = "2025-05-15T13:38:13.822Z" }, - { url = "https://files.pythonhosted.org/packages/bb/36/ec715be797ab99b28a309fbeb39d493ecd2670c48312b23042737558a946/rpds_py-0.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5afbff2822016db3c696cb0c1432e6b1f0e34aa9280bc5184dc216812a24e70d", size = 388829, upload-time = "2025-05-15T13:38:15.411Z" }, - { url = "https://files.pythonhosted.org/packages/2b/c6/8a8c8563876f47f1e0c4da7d3d603ae87ceb2be51e0b4b1c2758b729fb37/rpds_py-0.25.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ffae52cd76837a5c16409359d236b1fced79e42e0792e8adf375095a5e855368", size = 392759, upload-time = "2025-05-15T13:38:17.321Z" }, - { url = "https://files.pythonhosted.org/packages/d4/42/303b5c18744406b9afa6a66740297d3e20a91ee0df46003da05bd14faa5d/rpds_py-0.25.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddf9426b740a7047b2b0dddcba775211542e8053ce1e509a1759b665fe573508", size = 449645, upload-time = "2025-05-15T13:38:19.277Z" }, - { url = "https://files.pythonhosted.org/packages/18/9b/bb308301eddd3ea81b68b77426691f7476671dca40a45a54a2b178294109/rpds_py-0.25.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9cad834f1a8f51eb037c3c4dc72c884c9e1e0644d900e2d45aa76450e4aa6282", size = 444905, upload-time = "2025-05-15T13:38:21.195Z" }, - { url = "https://files.pythonhosted.org/packages/bf/03/d8a23a4610dc1ce7853bdb5c099de8050dae93cc8e7550ad6854073fbcb7/rpds_py-0.25.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c46bd76986e05689376d28fdc2b97d899576ce3e3aaa5a5f80f67a8300b26eb3", size = 386801, upload-time = "2025-05-15T13:38:22.752Z" }, - { url = "https://files.pythonhosted.org/packages/e7/85/3ea010f1fe8d64c44e3e5b6c60fa81db96752e7a0a8f86fe72cb02d72673/rpds_py-0.25.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f3353a2d7eb7d5e0af8a7ca9fc85a34ba12619119bcdee6b8a28a6373cda65ce", size = 419799, upload-time = "2025-05-15T13:38:24.276Z" }, - { url = "https://files.pythonhosted.org/packages/08/d4/ab18f94d77687facf39fabb58c81bb0c176d2e56d42b9198e954b9d1e5a0/rpds_py-0.25.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fdc648d4e81eef5ac4bb35d731562dffc28358948410f3274d123320e125d613", size = 565732, upload-time = "2025-05-15T13:38:25.938Z" }, - { url = "https://files.pythonhosted.org/packages/e7/2d/c21b92fc82d7197a9616528fc3dca3efb7b297d5154be754497cfbccb019/rpds_py-0.25.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:098d446d76d26e394b440d73921b49c1c90274d46ccbaadf346b1b78f9fdd4b1", size = 591454, upload-time = "2025-05-15T13:38:27.88Z" }, - { url = "https://files.pythonhosted.org/packages/82/f4/e75a6cd71cecb418edd39746627a06665c44c72de05d2c77480851cfa759/rpds_py-0.25.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c624c82e645f6b5465d08cdc802fb0cd53aa1478782fb2992b9e09f2c9426865", size = 557622, upload-time = "2025-05-15T13:38:29.418Z" }, - { url = "https://files.pythonhosted.org/packages/03/8a/ffb53d59ea1890471d2397efa2dd02df5292c40e123a97542d2bd2089a76/rpds_py-0.25.0-cp310-cp310-win32.whl", hash = "sha256:9d0041bd9e2d2ef803b32d84a0c8115d178132da5691346465953a2a966ba8ca", size = 219802, upload-time = "2025-05-15T13:38:31.33Z" }, - { url = "https://files.pythonhosted.org/packages/c5/d8/853d97fd9b9c192e54dc73bc864e348e34b642a9161f55c0adf08f06ca21/rpds_py-0.25.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8b41195a6b03280ab00749a438fbce761e7acfd5381051a570239d752376f27", size = 231224, upload-time = "2025-05-15T13:38:33.148Z" }, - { url = "https://files.pythonhosted.org/packages/41/bb/505b4de3e7011fba218cfdf78bb80754194e9a5af469a96900923c535bf5/rpds_py-0.25.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6587ece9f205097c62d0e3d3cb7c06991eb0083ab6a9cf48951ec49c2ab7183c", size = 373387, upload-time = "2025-05-15T13:38:34.624Z" }, - { url = "https://files.pythonhosted.org/packages/d6/5c/f2a9e4929cbe4162ccc126292f58558358607ded1f435148a83ea86f082c/rpds_py-0.25.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b0a5651e350997cebcdc23016dca26c4d1993d29015a535284da3159796e30b6", size = 359136, upload-time = "2025-05-15T13:38:36.302Z" }, - { url = "https://files.pythonhosted.org/packages/3e/df/7fcd34dc325b453066b7445d79ec15da2273c1365a3b2222ad16abaf475c/rpds_py-0.25.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3752a015db89ea3e9c04d5e185549be4aa29c1882150e094c614c0de8e788feb", size = 388972, upload-time = "2025-05-15T13:38:38.392Z" }, - { url = "https://files.pythonhosted.org/packages/6d/f3/76e0aefb6713951288b28070bd7cc9ccb2a2440d6bd425d4f23d28152260/rpds_py-0.25.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a05b199c11d2f39c72de8c30668734b5d20974ad44b65324ea3e647a211f135d", size = 393360, upload-time = "2025-05-15T13:38:39.949Z" }, - { url = "https://files.pythonhosted.org/packages/c0/e1/9189e5f81a5209f61bbd35780f038c771a986da19995d8b89072d6f833e3/rpds_py-0.25.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2f91902fc0c95dd1fa6b30ebd2af83ace91e592f7fd6340a375588a9d4b9341b", size = 449744, upload-time = "2025-05-15T13:38:41.442Z" }, - { url = "https://files.pythonhosted.org/packages/6e/fe/7e9d920aeff117a5def4ef6f3cfbae84b504d9d6f3254104c7d8aeeea06a/rpds_py-0.25.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98c729193e7abe498565266933c125780fb646e977e94289cadbb36e4eeeb370", size = 444403, upload-time = "2025-05-15T13:38:42.924Z" }, - { url = "https://files.pythonhosted.org/packages/24/61/c5485bfa5b7abd55af0c1fe5a7af98682f6b16207e4f980f40d73b84682c/rpds_py-0.25.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36a7564deaac3f372e8b8b701eb982ea3113516e8e08cd87e3dc6ccf29bad14b", size = 387082, upload-time = "2025-05-15T13:38:44.735Z" }, - { url = "https://files.pythonhosted.org/packages/63/b0/a7cd764be9cd0f9425e5a817d41b202f64f524df22f9deb966b69079598a/rpds_py-0.25.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6b0c0f671a53c129ea48f9481e95532579cc489ab5a0ffe750c9020787181c48", size = 419891, upload-time = "2025-05-15T13:38:46.303Z" }, - { url = "https://files.pythonhosted.org/packages/2c/f0/2ee00623c5e8ab504457c681c3fcac3ea3ddc7e51733cc3f451ef1edce02/rpds_py-0.25.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d21408eaa157063f56e58ca50da27cad67c4395a85fb44cc7a31253ea4e58918", size = 565856, upload-time = "2025-05-15T13:38:53.212Z" }, - { url = "https://files.pythonhosted.org/packages/a1/88/9815253c416c9005973371001f15ba354bc04a7fc8bbb2ad602470d50fe4/rpds_py-0.25.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:a413674eb2bd2ecb2b93fcc928871b19f7220ee04bca4af3375c50a2b32b5a50", size = 591473, upload-time = "2025-05-15T13:38:54.774Z" }, - { url = "https://files.pythonhosted.org/packages/cd/7f/69a32888306e7b700aa7433ddf0c1c92a20bde31a94c63131b0dd5689f61/rpds_py-0.25.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:94f89161a3e358db33310a8a064852a6eb119ed1aa1a3dba927b4e5140e65d00", size = 557659, upload-time = "2025-05-15T13:38:56.909Z" }, - { url = "https://files.pythonhosted.org/packages/c1/60/d4edaea1f305c866970e940a31600e493920830a2d3712866b1ec2284c03/rpds_py-0.25.0-cp311-cp311-win32.whl", hash = "sha256:540cd89d256119845b7f8f56c4bb80cad280cab92d9ca473be49ea13e678fd44", size = 219592, upload-time = "2025-05-15T13:38:59.281Z" }, - { url = "https://files.pythonhosted.org/packages/5f/e8/c94eb1678b3cd51023ab855f8c2adcb28dfb2a51d045a1228fc306e09387/rpds_py-0.25.0-cp311-cp311-win_amd64.whl", hash = "sha256:2649ff19291928243f90c86e4dc9cd86c8c4c6a73c3693ba2e23bc2fbcd8338c", size = 231344, upload-time = "2025-05-15T13:39:00.7Z" }, - { url = "https://files.pythonhosted.org/packages/ee/b5/819fd819dd66a65951749a2a475a0b4455fa3ad0b4f84eba5a7d785ac07b/rpds_py-0.25.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:89260601d497fa5957c3e46f10b16cfa2a4808ad4dd46cddc0b997461923a7d9", size = 364544, upload-time = "2025-05-15T13:39:02.1Z" }, - { url = "https://files.pythonhosted.org/packages/bb/66/aea9c48e9f6d8f88b8ecf4ac7f6c6d742e005c33e0bdd46ce0d9f12aee27/rpds_py-0.25.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:637ec39f97e342a3f76af739eda96800549d92f3aa27a2170b6dcbdffd49f480", size = 350634, upload-time = "2025-05-15T13:39:03.524Z" }, - { url = "https://files.pythonhosted.org/packages/20/93/e5ee11a1b139f0064d82fff24265de881949e8be96453ec7cc26511e2216/rpds_py-0.25.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bd08c82336412a39a598e5baccab2ee2d7bd54e9115c8b64f2febb45da5c368", size = 392993, upload-time = "2025-05-15T13:39:05.485Z" }, - { url = "https://files.pythonhosted.org/packages/3e/46/751eb56baa015486dd353d22dcc12252c69ad30845bd87322702431fe519/rpds_py-0.25.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:837fd066f974e5b98c69ac83ec594b79a2724a39a92a157b8651615e5032e530", size = 399671, upload-time = "2025-05-15T13:39:07.01Z" }, - { url = "https://files.pythonhosted.org/packages/90/8f/8c2fe58710e1af0d730173078365cfbea217af7a50e4d4c15d8c125c2bf5/rpds_py-0.25.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:653a066d2a4a332d4f8a11813e8124b643fa7b835b78468087a9898140469eee", size = 452889, upload-time = "2025-05-15T13:39:09.082Z" }, - { url = "https://files.pythonhosted.org/packages/e1/60/5192ddcde55bc19055994c19cb294fb62494fe3b19f707d3572311a06057/rpds_py-0.25.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:91a51499be506022b9f09facfc42f0c3a1c45969c0fc8f0bbebc8ff23ab9e531", size = 441069, upload-time = "2025-05-15T13:39:10.689Z" }, - { url = "https://files.pythonhosted.org/packages/c4/0e/0cbcef1144cd9ed9e30bbcbfb98a823904fefa12b8ebc1e5a0426d8d6a7e/rpds_py-0.25.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb91471640390a82744b164f8a0be4d7c89d173b1170713f9639c6bad61e9e64", size = 391281, upload-time = "2025-05-15T13:39:12.22Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e5/509a90ae0496af514c9f00fcbf8952cf3f9279e1c9a78738baa0e5c42b7a/rpds_py-0.25.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28bd2969445acc2d6801a22f97a43134ae3cb18e7495d668bfaa8d82b8526cdc", size = 425308, upload-time = "2025-05-15T13:39:13.787Z" }, - { url = "https://files.pythonhosted.org/packages/e3/61/248102bcc5f3943f337693131a07ad36fac3915d66edcd7d7c74df0770d0/rpds_py-0.25.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f933b35fa563f047896a70b69414dfb3952831817e4c4b3a6faa96737627f363", size = 570074, upload-time = "2025-05-15T13:39:15.488Z" }, - { url = "https://files.pythonhosted.org/packages/7d/a1/34d1286b1b655fd2219e56587862f4a894f98d025cde58ae7bf9ed3d54be/rpds_py-0.25.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:80b37b37525492250adc7cbca20ae7084f86eb3eb62414b624d2a400370853b1", size = 595438, upload-time = "2025-05-15T13:39:17.209Z" }, - { url = "https://files.pythonhosted.org/packages/be/4a/413b8f664ffdbfa3b711e03328212ee26db9c2710f8148bcb21f379fb9b5/rpds_py-0.25.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:864573b6440b770db5a8693547a8728d7fd32580d4903010a8eee0bb5b03b130", size = 561950, upload-time = "2025-05-15T13:39:18.78Z" }, - { url = "https://files.pythonhosted.org/packages/f5/25/7c1a6461b704b1408591d9c3739a0cfa05f08a9bf3afc3f5f8cd8a86f5d5/rpds_py-0.25.0-cp312-cp312-win32.whl", hash = "sha256:ad4a896896346adab86d52b31163c39d49e4e94c829494b96cc064bff82c5851", size = 222692, upload-time = "2025-05-15T13:39:22.916Z" }, - { url = "https://files.pythonhosted.org/packages/f2/43/891aeac02896d5a7eaa720c30cc2b960e6e5b9b6364db067a57a29597a99/rpds_py-0.25.0-cp312-cp312-win_amd64.whl", hash = "sha256:4fbec54cc42fa90ca69158d75f125febc4116b2d934e71c78f97de1388a8feb2", size = 235489, upload-time = "2025-05-15T13:39:24.43Z" }, - { url = "https://files.pythonhosted.org/packages/0d/d9/6534d5a9d00038261894551ee8043267f17c019e6c0df3c7d822fb5914f1/rpds_py-0.25.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:4e5fe366fa53bd6777cf5440245366705338587b2cf8d61348ddaad744eb591a", size = 364375, upload-time = "2025-05-15T13:39:25.878Z" }, - { url = "https://files.pythonhosted.org/packages/af/9d/f90c079635017cc50350cbbbf2c4fea7b2a75a24bea92211da1b0c52d55f/rpds_py-0.25.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:54f925ff8d4443b7cae23a5215954abbf4736a3404188bde53c4d744ac001d89", size = 350284, upload-time = "2025-05-15T13:39:27.336Z" }, - { url = "https://files.pythonhosted.org/packages/f9/04/b54c5b3abdccf03ca3ec3317bd68caaa7907a61fea063096ee08d128b6ed/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58258a66255b2500ddaa4f33191ada5ec983a429c09eb151daf81efbb9aa115", size = 392107, upload-time = "2025-05-15T13:39:30.99Z" }, - { url = "https://files.pythonhosted.org/packages/aa/99/001bc3ab81c1798ee4c7bba7950134258d899e566d6839b6696b47248f71/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f3a57f08c558d0983a708bfe6d1265f47b5debff9b366b2f2091690fada055c", size = 398612, upload-time = "2025-05-15T13:39:32.505Z" }, - { url = "https://files.pythonhosted.org/packages/00/e1/e22893e1043938811a50c857a5780e0a4e2da02dd10ac041ecca1044906a/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7d60d42f1b9571341ad2322e748f7a60f9847546cd801a3a0eb72a1b54c6519", size = 452190, upload-time = "2025-05-15T13:39:34.024Z" }, - { url = "https://files.pythonhosted.org/packages/fb/6c/7071e6d27e784ac33ab4ca048eb550b5fc4f381b29e9ba33254bc6e7eaf6/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a54b94b0e4de95aa92618906fb631779d9fde29b4bf659f482c354a3a79fd025", size = 440634, upload-time = "2025-05-15T13:39:36.048Z" }, - { url = "https://files.pythonhosted.org/packages/57/17/7343ea3ec906ee8c2b64a956d702de5067e0058b5d2869fbfb4b11625112/rpds_py-0.25.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af1c2241919304cc2f90e7dcb3eb1c1df6fb4172dd338e629dd6410e48b3d1a0", size = 391000, upload-time = "2025-05-15T13:39:37.802Z" }, - { url = "https://files.pythonhosted.org/packages/2b/ad/9b3c3e950108073448834f0548077e598588efa413ba8dcc91e7ad6ff59d/rpds_py-0.25.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7d34547810bfd61acf8a441e8a3651e7a919e8e8aed29850be14a1b05cfc6f41", size = 424621, upload-time = "2025-05-15T13:39:39.409Z" }, - { url = "https://files.pythonhosted.org/packages/57/06/bd99ca30a6e539c18c6175501c1dd7f9ef0640f7b1dc0b14b094785b509a/rpds_py-0.25.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:66568caacf18542f0cf213db7adf3de2da6ad58c7bf2c4fafec0d81ae557443b", size = 569529, upload-time = "2025-05-15T13:39:41.011Z" }, - { url = "https://files.pythonhosted.org/packages/c5/79/93381a25668466502adc082d3ce2a9ff35f8116e5e2711cedda0bfcfd699/rpds_py-0.25.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e49e4c3e899c32884d7828c91d6c3aff08d2f18857f50f86cc91187c31a4ca58", size = 594638, upload-time = "2025-05-15T13:39:43.15Z" }, - { url = "https://files.pythonhosted.org/packages/91/ee/371ecc045d65af518e2210ad018892b1f7a7a21cd64661156b4d29dfd839/rpds_py-0.25.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:20af08b0b2d5b196a2bcb70becf0b97ec5af579cee0ae6750b08a2eea3b6c77d", size = 561413, upload-time = "2025-05-15T13:39:45.3Z" }, - { url = "https://files.pythonhosted.org/packages/34/c4/85e9853312b7e5de3c98f100280fbfd903e63936f49f6f11e4cd4eb53299/rpds_py-0.25.0-cp313-cp313-win32.whl", hash = "sha256:d3dc8d6ce8f001c80919bdb49d8b0b815185933a0b8e9cdeaea42b0b6f27eeb0", size = 222326, upload-time = "2025-05-15T13:39:46.777Z" }, - { url = "https://files.pythonhosted.org/packages/65/c6/ac744cc5752b6f291b2cf13e19cd7ea3cafe68922239a3b95f05f39287b7/rpds_py-0.25.0-cp313-cp313-win_amd64.whl", hash = "sha256:113d134dc5a8d2503630ca2707b58a1bf5b1b3c69b35c7dab8690ee650c111b8", size = 234772, upload-time = "2025-05-15T13:39:48.804Z" }, - { url = "https://files.pythonhosted.org/packages/4b/aa/dabab50a2fb321a12ffe4668087e5d0f9b06286ccb260d345bf01c79b07c/rpds_py-0.25.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:6c72a4a8fab10bc96720ad40941bb471e3b1150fb8d62dab205d495511206cf1", size = 359693, upload-time = "2025-05-15T13:39:53.913Z" }, - { url = "https://files.pythonhosted.org/packages/11/3d/acda0095fe54ee6c553d222fb3d275506f8db4198b6a72a69eef826d63c1/rpds_py-0.25.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bb979162323f3534dce84b59f86e689a0761a2a300e0212bfaedfa80d4eb8100", size = 345911, upload-time = "2025-05-15T13:39:55.623Z" }, - { url = "https://files.pythonhosted.org/packages/db/f3/fba9b387077f9b305fce27fe22bdb731b75bfe208ae005fd09a127eced05/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35c8cb5dcf7d36d3adf2ae0730b60fb550a8feb6e432bee7ef84162a0d15714b", size = 387669, upload-time = "2025-05-15T13:39:57.103Z" }, - { url = "https://files.pythonhosted.org/packages/a2/a7/b8dbcdc9a8f1e96b5abc58bdfc22f2845178279694a9294fe4feb66ae330/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:673ba018df5ae5e7b6c9a021d51ffe39c0ae1daa0041611ed27a0bca634b2d2e", size = 392202, upload-time = "2025-05-15T13:39:59.456Z" }, - { url = "https://files.pythonhosted.org/packages/60/60/2d46ad24207114cdb341490387d5a77c845827ac03f2a37182a19d072738/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:16fb28d3a653f67c871a47c5ca0be17bce9fab8adb8bcf7bd09f3771b8c4d860", size = 450080, upload-time = "2025-05-15T13:40:01.131Z" }, - { url = "https://files.pythonhosted.org/packages/85/ae/b1966ca161942f2edf0b2c4fb448b88c19bdb37e982d0907c4b484eb0bbc/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12a84c3851f9e68633d883c01347db3cb87e6160120a489f9c47162cd276b0a5", size = 438189, upload-time = "2025-05-15T13:40:02.816Z" }, - { url = "https://files.pythonhosted.org/packages/a8/b0/0a8bff40865e27fc8cd7bdf667958981794ccf5e7989890ae96c89112920/rpds_py-0.25.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b5f457afffb45d3804728a54083e31fbaf460e902e3f7d063e56d0d0814301e", size = 387925, upload-time = "2025-05-15T13:40:04.523Z" }, - { url = "https://files.pythonhosted.org/packages/a5/5d/62abbc77e18f9e67556ead54c84a7c662f39236b7a41cf1a39a24bf5e79f/rpds_py-0.25.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9442cbff21122e9a529b942811007d65eabe4182e7342d102caf119b229322c6", size = 417682, upload-time = "2025-05-15T13:40:06.879Z" }, - { url = "https://files.pythonhosted.org/packages/5d/eb/2f65e4332e3566d06c5ccad64441b1eaaf58a6c5999d533720f1f47d3118/rpds_py-0.25.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:383cf0d4288baf5a16812ed70d54ecb7f2064e255eb7fe42c38e926adeae4534", size = 565244, upload-time = "2025-05-15T13:40:08.598Z" }, - { url = "https://files.pythonhosted.org/packages/02/3a/ae5f68ab4879d6fbe3abec3139eab1664c3372d8b42864ab940a4940a61c/rpds_py-0.25.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:0dcdee07ebf76223092666c72a9552db276fbe46b98830ecd1bb836cc98adc81", size = 590459, upload-time = "2025-05-15T13:40:10.375Z" }, - { url = "https://files.pythonhosted.org/packages/c3/f6/ada6c3d9b803a9eb7bc9c8b3f3cebf7d779bbbb056cd7e3fc150e4c74c00/rpds_py-0.25.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5bbfbd9c74c4dd74815bd532bf29bedea6d27d38f35ef46f9754172a14e4c655", size = 558335, upload-time = "2025-05-15T13:40:13.695Z" }, - { url = "https://files.pythonhosted.org/packages/68/9a/7d269e8f1bfe3143e699334ca0b578e16b37e6505bf10dca8c02aa8addc8/rpds_py-0.25.0-cp313-cp313t-win32.whl", hash = "sha256:90dbd2c42cb6463c07020695800ae8f347e7dbeff09da2975a988e467b624539", size = 218761, upload-time = "2025-05-15T13:40:16.043Z" }, - { url = "https://files.pythonhosted.org/packages/16/16/f5843b19b7bfd16d63b960cf4c646953010886cc62dd41b00854d77b0eed/rpds_py-0.25.0-cp313-cp313t-win_amd64.whl", hash = "sha256:8c2ad59c4342a176cb3e0d5753e1c911eabc95c210fc6d0e913c32bf560bf012", size = 232634, upload-time = "2025-05-15T13:40:17.633Z" }, - { url = "https://files.pythonhosted.org/packages/5e/99/3db8ea3c50643d4cf8b482b2e36dc0534827e8ff7e3d9b22865132a207ff/rpds_py-0.25.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:9f9a1b15b875160186177f659cde2b0f899182b0aca49457d6396afc4bbda7b9", size = 373495, upload-time = "2025-05-15T13:40:20.451Z" }, - { url = "https://files.pythonhosted.org/packages/cb/17/44f7801d77ce1503323044c42c12039fbae6400f648bab3450cfed6cf25b/rpds_py-0.25.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5e849315963eb08c26167d0f2c0f9319c9bd379daea75092b3c595d70be6209d", size = 359369, upload-time = "2025-05-15T13:40:22.027Z" }, - { url = "https://files.pythonhosted.org/packages/c3/d8/20f585e6e851701a869a5230d045e949a915a2477450d1940bdcc9865300/rpds_py-0.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ad37c29adc435e6d8b24be86b03596183ee8d4bb8580cc4c676879b0b896a99", size = 389008, upload-time = "2025-05-15T13:40:23.942Z" }, - { url = "https://files.pythonhosted.org/packages/fd/5f/f647d669deca5d4c1a963f9c5fda4a6f51005e86fc4ba8aca1b148d92031/rpds_py-0.25.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:587cad3959d3d85127cf5df1624cdce569bb3796372e00420baad46af7c56b9b", size = 393488, upload-time = "2025-05-15T13:40:26.813Z" }, - { url = "https://files.pythonhosted.org/packages/b7/d9/5aeb9d62167815c4057f56e5fbcac0d3de2749ad7c98fa63906411a73234/rpds_py-0.25.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce0518667855a1598d9b1f4fcf0fed1182c67c5ba4fe6a2c6bce93440a65cead", size = 449749, upload-time = "2025-05-15T13:40:28.84Z" }, - { url = "https://files.pythonhosted.org/packages/82/92/83bb3e5fbd6c5625b2bd71b9f2be74a81a5331959fafe312d810758b4eb5/rpds_py-0.25.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c18cb2f6805861dcdf11fb0b3c111a0335f6475411687db2f6636f32bed66b0", size = 444582, upload-time = "2025-05-15T13:40:30.475Z" }, - { url = "https://files.pythonhosted.org/packages/74/3d/9f721a1af6f8a68e794a9e0e24d52d8c9486469bc82b98c4ef743703f8a5/rpds_py-0.25.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a21f4584f69547ae03aaa21be98753e85599f3437b84039da5dc20b53abe987", size = 387740, upload-time = "2025-05-15T13:40:32.667Z" }, - { url = "https://files.pythonhosted.org/packages/af/25/0a5054396fd6333cbf769fe27491d507ad72bdbe14b0a92bd4a227c67437/rpds_py-0.25.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3d7d65aa934899849628137ab391562cdb487c6ffb9b9781319a64a9c66afbce", size = 419863, upload-time = "2025-05-15T13:40:34.845Z" }, - { url = "https://files.pythonhosted.org/packages/09/42/805da85b320fed26ebaca0fca390d76f7950dbf4a75d6b36de8421b89ded/rpds_py-0.25.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:fd9167e9604cb5a218a2e847aa8cdc5f98b379a673371978ee7b0c11b4d2e140", size = 566461, upload-time = "2025-05-15T13:40:36.603Z" }, - { url = "https://files.pythonhosted.org/packages/df/03/bd70affd1256c2112d7cade7283b45a7e31ee9fbdd059c023896d031ec64/rpds_py-0.25.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:6c27156c8d836e7ff760767e93245b286ae028bfd81d305db676662d1f642637", size = 591792, upload-time = "2025-05-15T13:40:39.236Z" }, - { url = "https://files.pythonhosted.org/packages/63/8f/adf6f0f894f9514b1486fa7b857fe06366b1a0a802bd3f3bd447ee682afd/rpds_py-0.25.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:66087711faf29cb3ac8ab05341939aec29968626aff8ef18e483e229055dd9a7", size = 558023, upload-time = "2025-05-15T13:40:41.371Z" }, - { url = "https://files.pythonhosted.org/packages/4d/09/fa0a34f778aa839e68d6f45f48f7f7624f8c2082a79552a8cf52d5a8968a/rpds_py-0.25.0-cp39-cp39-win32.whl", hash = "sha256:f2e69415e4e33cdeee50ebc2c4d8fcbef12c3181d9274e512ccd2a905a76aad1", size = 219939, upload-time = "2025-05-15T13:40:43.495Z" }, - { url = "https://files.pythonhosted.org/packages/34/3b/bb1f98d66132fc7758f1a84376baed7770c1b7f9c85a3ce48b5249725d7f/rpds_py-0.25.0-cp39-cp39-win_amd64.whl", hash = "sha256:58cfaa54752d6d2b4f10e87571688dbb7792327a69eca5417373d77d42787058", size = 231043, upload-time = "2025-05-15T13:40:45.817Z" }, - { url = "https://files.pythonhosted.org/packages/c8/bf/e2862b6cde99696440f70f71f34cfc5f883c6c93204d945220d223c94c3a/rpds_py-0.25.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:57e9616a2a9da08fe0994e37a0c6f578fbaf6d35911bcba31e99660542d60c45", size = 373739, upload-time = "2025-05-15T13:40:47.49Z" }, - { url = "https://files.pythonhosted.org/packages/1e/58/f419062ee1fdb4cddf790933e14b1620096e95ef924c0509eca83a6ce100/rpds_py-0.25.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6d95521901896a90a858993bfa3ec0f9160d3d97e8c8fefc279b3306cdadfee0", size = 359440, upload-time = "2025-05-15T13:40:49.13Z" }, - { url = "https://files.pythonhosted.org/packages/b4/20/321cbc4d68b6fbb6f72d80438d1af4216b300a3dbff1e9a687625641e79a/rpds_py-0.25.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d33aef3914a5b49db12ed3f24d214ffa50caefc8f4b0c7c7b9485bd4b231a898", size = 389607, upload-time = "2025-05-15T13:40:52.406Z" }, - { url = "https://files.pythonhosted.org/packages/9d/d2/cda336d67bee9b936559245da63b21dd7d622220ceda231ecb6ae62e9379/rpds_py-0.25.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4acbe2349a3baac9cc212005b6cb4bbb7e5b34538886cde4f55dfc29173da1d6", size = 393540, upload-time = "2025-05-15T13:40:55.398Z" }, - { url = "https://files.pythonhosted.org/packages/65/14/f59bd89270a384349b3beb5c7fa636e20c0f719a55a227e6872236a68d71/rpds_py-0.25.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9b75b5d3416b00d064a5e6f4814fdfb18a964a7cf38dc00b5c2c02fa30a7dd0b", size = 450675, upload-time = "2025-05-15T13:40:57.065Z" }, - { url = "https://files.pythonhosted.org/packages/49/52/7567da6cc8293bcf4572a895bdcb4fbd9b23f7c2ebbcf943b8a8caf78ff2/rpds_py-0.25.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:542a6f1d0f400b9ce1facb3e30dd3dc84e4affc60353509b00a7bdcd064be91e", size = 444899, upload-time = "2025-05-15T13:40:59.384Z" }, - { url = "https://files.pythonhosted.org/packages/3a/8f/169498c962ea9752d809c9505dee23000a8370cc15bb6a88dcef6a58f3a8/rpds_py-0.25.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a60ba9d104f4e8496107b1cb86e45a68a16d13511dc3986e0780e9f85c2136f9", size = 387855, upload-time = "2025-05-15T13:41:01.027Z" }, - { url = "https://files.pythonhosted.org/packages/80/4c/05888641972cac3dbb17de60ee07cbcb85c80a462f3b0eb61d8cf8921ccf/rpds_py-0.25.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6065a489b7b284efb29d57adffae2b9b5e9403d3c8d95cfa04e04e024e6b4e77", size = 420539, upload-time = "2025-05-15T13:41:02.687Z" }, - { url = "https://files.pythonhosted.org/packages/56/f5/95d3a8cecb7f31ea4ce98096431cc93295543ba8dd5b23fe006b762fc16a/rpds_py-0.25.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:6bcca4d0d24d8c37bfe0cafdaaf4346b6c516db21ccaad5c7fba0a0df818dfc9", size = 566610, upload-time = "2025-05-15T13:41:06.232Z" }, - { url = "https://files.pythonhosted.org/packages/2d/7a/cc8f2615df4bf97316aa03f7b5f1acccd9b2fa871a652e8a961b06486e9c/rpds_py-0.25.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:8155e21203161e5c78791fc049b99f0bbbf14d1d1839c8c93c8344957f9e8e1e", size = 591499, upload-time = "2025-05-15T13:41:07.956Z" }, - { url = "https://files.pythonhosted.org/packages/ad/5a/f6fb6a91ed0b8e5b7a4e27f8c959bfcfaad7b57341ef7d99e248165de188/rpds_py-0.25.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a1eda14db1ac7a2ab4536dfe69e4d37fdd765e8e784ae4451e61582ebb76012", size = 558441, upload-time = "2025-05-15T13:41:09.656Z" }, - { url = "https://files.pythonhosted.org/packages/2f/97/40057d99358d7bf116eea1cb4ffe33e66294392d4ade3db6d3ee56817597/rpds_py-0.25.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:de34a7d1893be76cb015929690dce3bde29f4de08143da2e9ad1cedb11dbf80e", size = 231644, upload-time = "2025-05-15T13:41:12.762Z" }, - { url = "https://files.pythonhosted.org/packages/73/80/e28624a339aea0634da115fe520f44703cce2f0b07191fb010d606cd9839/rpds_py-0.25.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0d63a86b457069d669c423f093db4900aa102f0e5a626973eff4db8355c0fd96", size = 374033, upload-time = "2025-05-15T13:41:14.668Z" }, - { url = "https://files.pythonhosted.org/packages/5c/5a/4d7eba630368fb7183bf18eb7d11090048e6e756dec1d71dc228815eb002/rpds_py-0.25.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89bb2b20829270aca28b1e5481be8ee24cb9aa86e6c0c81cb4ada2112c9588c5", size = 359591, upload-time = "2025-05-15T13:41:16.436Z" }, - { url = "https://files.pythonhosted.org/packages/97/a7/7a9d5bdd68c3741ebe094861793fce58136455ef708e440f0aef1dd0fb50/rpds_py-0.25.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83e103b48e63fd2b8a8e2b21ab5b5299a7146045626c2ed4011511ea8122d217", size = 389565, upload-time = "2025-05-15T13:41:19.266Z" }, - { url = "https://files.pythonhosted.org/packages/c7/1e/53e9f85d7c859122b46d60052473719b449d653ba8a125d62533dc7a72d6/rpds_py-0.25.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fccd24c080850715c58a80200d367bc62b4bff6c9fb84e9564da1ebcafea6418", size = 393572, upload-time = "2025-05-15T13:41:21.051Z" }, - { url = "https://files.pythonhosted.org/packages/02/a2/f2ea6864c782da253e433bd9538710fc501e41f7edda580b54bf498c203b/rpds_py-0.25.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12b42790c91e0041a98f0ec04244fb334696938793e785a5d4c7e56ca534d7da", size = 450905, upload-time = "2025-05-15T13:41:22.769Z" }, - { url = "https://files.pythonhosted.org/packages/65/75/45c1c8be90c909732d47a6b354c4b2c45c7d2e868c9da90dceb71a30938c/rpds_py-0.25.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bc907ea12216cfc5560148fc42459d86740fc739981c6feb94230dab09362679", size = 444337, upload-time = "2025-05-15T13:41:25.953Z" }, - { url = "https://files.pythonhosted.org/packages/d8/07/cff35d166814454dfe2cd5aec0960e717711ebb39e857ede5cdac65a3fa7/rpds_py-0.25.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e11065b759c38c4945f8c9765ed2910e31fa5b2f7733401eb7d966f468367a2", size = 387925, upload-time = "2025-05-15T13:41:28.404Z" }, - { url = "https://files.pythonhosted.org/packages/8c/33/f5ddeb28300ab062985e389bb3974793bb07be37bf9ab0c2dff42dc6b1ea/rpds_py-0.25.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8abc1a3e29b599bf8bb5ad455256a757e8b0ed5621e7e48abe8209932dc6d11e", size = 420658, upload-time = "2025-05-15T13:41:30.097Z" }, - { url = "https://files.pythonhosted.org/packages/4d/ef/1806d0f8060a85c3561526f2019fbde5b082af07b99fc8aeea001acdf7ab/rpds_py-0.25.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:cd36b71f9f3bf195b2dd9be5eafbfc9409e6c8007aebc38a4dc051f522008033", size = 566601, upload-time = "2025-05-15T13:41:33.47Z" }, - { url = "https://files.pythonhosted.org/packages/fd/75/de2e0a8de964cf7e8d5ed9b51e9be74e485d3a34d7f0ec27005c787ca96d/rpds_py-0.25.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:805a0dff0674baa3f360c21dcbc622ae544f2bb4753d87a4a56a1881252a477e", size = 591728, upload-time = "2025-05-15T13:41:35.312Z" }, - { url = "https://files.pythonhosted.org/packages/43/da/6bc93116657c720d0843ed4ed5b1c3c127ca56e6c048e9ebd402496f0649/rpds_py-0.25.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:96742796f499ac23b59856db734e65b286d1214a0d9b57bcd7bece92d9201fa4", size = 558441, upload-time = "2025-05-15T13:41:38.029Z" }, - { url = "https://files.pythonhosted.org/packages/75/6d/fad1ce44e181a448bfcddd227280eeb6acaa2e02bd44e64598158904b137/rpds_py-0.25.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7715597186a7277be12729c896019226321bad1f047da381ab707b177aa5017c", size = 373764, upload-time = "2025-05-15T13:41:39.742Z" }, - { url = "https://files.pythonhosted.org/packages/f1/77/471c913fc45f63ed27eaf13e6e05340e89039d47292b34dc692fbe9cff11/rpds_py-0.25.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5b049dd0792d51f07193cd934acec89abe84d2607109e6ca223b2f0ff24f0c7d", size = 359761, upload-time = "2025-05-15T13:41:41.694Z" }, - { url = "https://files.pythonhosted.org/packages/95/02/88af548837b4cc3baa2992ed516dd529bd2846e6e34a0374a2d591e04ec3/rpds_py-0.25.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87c6ff87b38f46d712418d78b34db1198408a3d9a42eddc640644aea561216b1", size = 389066, upload-time = "2025-05-15T13:41:43.468Z" }, - { url = "https://files.pythonhosted.org/packages/01/b4/69d1d44563e6d03a712cd5361328f159f851e70bcc20407a54081f4db786/rpds_py-0.25.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:240251fd95b057c26f8538d0e673bf983eba4f38da95fbaf502bfc1a768b3984", size = 393378, upload-time = "2025-05-15T13:41:45.405Z" }, - { url = "https://files.pythonhosted.org/packages/ab/9f/b1794e3ecdea08cb252830b0feef88a9913f5b49b51033369aa815cfc0f3/rpds_py-0.25.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:85587479f210350e9d9d25e505f422dd636e561658382ee8947357a4bac491ad", size = 450430, upload-time = "2025-05-15T13:41:47.078Z" }, - { url = "https://files.pythonhosted.org/packages/a9/bd/613236dca39e536567345baec80aa645b0e87f69f21222eb8558e6058955/rpds_py-0.25.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:551897221bbc9de17bce4574810347db8ec1ba4ec2f50f35421790d34bdb6ef9", size = 444902, upload-time = "2025-05-15T13:41:48.835Z" }, - { url = "https://files.pythonhosted.org/packages/e0/0b/1a8a952782c3497617ccd596d54ba050dc9bd553a957e7c686f9144fd0b4/rpds_py-0.25.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3d50ac3b772c10e0b918a5ce2e871138896bfb5f35050ff1ff87ddca45961fc", size = 387821, upload-time = "2025-05-15T13:41:51.193Z" }, - { url = "https://files.pythonhosted.org/packages/c2/a3/de1575f0d1af87ba2cdabc4021a4743a9ec585bef7bf2228717c52a17397/rpds_py-0.25.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8029c19c8a32ef3093c417dd16a5f806e7f529fcceea7c627b2635e9da5104da", size = 421049, upload-time = "2025-05-15T13:41:52.882Z" }, - { url = "https://files.pythonhosted.org/packages/46/8a/303cc0a48ba8d40583c2ddf604271b07313fd465e832efefe889836aac26/rpds_py-0.25.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:fe7439d9c5b402af2c9911c7facda1808d0c8dbfa9cf085e6aeac511a23f7d87", size = 566091, upload-time = "2025-05-15T13:41:54.806Z" }, - { url = "https://files.pythonhosted.org/packages/33/90/f7dcc66b9ae96bd6c7cd2355db565a0bc91e8b1dbbc601c83629abd34158/rpds_py-0.25.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:77910d6bec321c9fccfe9cf5e407fed9d2c48a5e510473b4f070d5cf2413c003", size = 592065, upload-time = "2025-05-15T13:41:56.598Z" }, - { url = "https://files.pythonhosted.org/packages/68/c4/13620f810872d96022e2a207c2a57c934ad02e01eca75d361014803f50a0/rpds_py-0.25.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:0ee0cc81f875e853ccdf3badb44b67f771fb9149baa9e752777ccdcaf052ad26", size = 558410, upload-time = "2025-05-15T13:41:58.897Z" }, - { url = "https://files.pythonhosted.org/packages/24/85/a88779bedd396172f20cd25aff7be154ddc5029ee8a1f992bc4dd3e70232/rpds_py-0.25.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:469054e6b2f8e41f1fe62b95f617082019d343eddeec3219ff3909067e672fb9", size = 231311, upload-time = "2025-05-15T13:42:02.337Z" }, + { url = "https://files.pythonhosted.org/packages/cb/09/e1158988e50905b7f8306487a576b52d32aa9a87f79f7ab24ee8db8b6c05/rpds_py-0.25.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f4ad628b5174d5315761b67f212774a32f5bad5e61396d38108bd801c0a8f5d9", size = 373140, upload-time = "2025-05-21T12:42:38.834Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4b/a284321fb3c45c02fc74187171504702b2934bfe16abab89713eedfe672e/rpds_py-0.25.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c742af695f7525e559c16f1562cf2323db0e3f0fbdcabdf6865b095256b2d40", size = 358860, upload-time = "2025-05-21T12:42:41.394Z" }, + { url = "https://files.pythonhosted.org/packages/4e/46/8ac9811150c75edeae9fc6fa0e70376c19bc80f8e1f7716981433905912b/rpds_py-0.25.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:605ffe7769e24b1800b4d024d24034405d9404f0bc2f55b6db3362cd34145a6f", size = 386179, upload-time = "2025-05-21T12:42:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ec/87eb42d83e859bce91dcf763eb9f2ab117142a49c9c3d17285440edb5b69/rpds_py-0.25.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ccc6f3ddef93243538be76f8e47045b4aad7a66a212cd3a0f23e34469473d36b", size = 400282, upload-time = "2025-05-21T12:42:44.92Z" }, + { url = "https://files.pythonhosted.org/packages/68/c8/2a38e0707d7919c8c78e1d582ab15cf1255b380bcb086ca265b73ed6db23/rpds_py-0.25.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f70316f760174ca04492b5ab01be631a8ae30cadab1d1081035136ba12738cfa", size = 521824, upload-time = "2025-05-21T12:42:46.856Z" }, + { url = "https://files.pythonhosted.org/packages/5e/2c/6a92790243569784dde84d144bfd12bd45102f4a1c897d76375076d730ab/rpds_py-0.25.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1dafef8df605fdb46edcc0bf1573dea0d6d7b01ba87f85cd04dc855b2b4479e", size = 411644, upload-time = "2025-05-21T12:42:48.838Z" }, + { url = "https://files.pythonhosted.org/packages/eb/76/66b523ffc84cf47db56efe13ae7cf368dee2bacdec9d89b9baca5e2e6301/rpds_py-0.25.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0701942049095741a8aeb298a31b203e735d1c61f4423511d2b1a41dcd8a16da", size = 386955, upload-time = "2025-05-21T12:42:50.835Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b9/a362d7522feaa24dc2b79847c6175daa1c642817f4a19dcd5c91d3e2c316/rpds_py-0.25.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e87798852ae0b37c88babb7f7bbbb3e3fecc562a1c340195b44c7e24d403e380", size = 421039, upload-time = "2025-05-21T12:42:52.348Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c4/b5b6f70b4d719b6584716889fd3413102acf9729540ee76708d56a76fa97/rpds_py-0.25.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3bcce0edc1488906c2d4c75c94c70a0417e83920dd4c88fec1078c94843a6ce9", size = 563290, upload-time = "2025-05-21T12:42:54.404Z" }, + { url = "https://files.pythonhosted.org/packages/87/a3/2e6e816615c12a8f8662c9d8583a12eb54c52557521ef218cbe3095a8afa/rpds_py-0.25.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e2f6a2347d3440ae789505693a02836383426249d5293541cd712e07e7aecf54", size = 592089, upload-time = "2025-05-21T12:42:55.976Z" }, + { url = "https://files.pythonhosted.org/packages/c0/08/9b8e1050e36ce266135994e2c7ec06e1841f1c64da739daeb8afe9cb77a4/rpds_py-0.25.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4fd52d3455a0aa997734f3835cbc4c9f32571345143960e7d7ebfe7b5fbfa3b2", size = 558400, upload-time = "2025-05-21T12:42:58.032Z" }, + { url = "https://files.pythonhosted.org/packages/f2/df/b40b8215560b8584baccd839ff5c1056f3c57120d79ac41bd26df196da7e/rpds_py-0.25.1-cp310-cp310-win32.whl", hash = "sha256:3f0b1798cae2bbbc9b9db44ee068c556d4737911ad53a4e5093d09d04b3bbc24", size = 219741, upload-time = "2025-05-21T12:42:59.479Z" }, + { url = "https://files.pythonhosted.org/packages/10/99/e4c58be18cf5d8b40b8acb4122bc895486230b08f978831b16a3916bd24d/rpds_py-0.25.1-cp310-cp310-win_amd64.whl", hash = "sha256:3ebd879ab996537fc510a2be58c59915b5dd63bccb06d1ef514fee787e05984a", size = 231553, upload-time = "2025-05-21T12:43:01.425Z" }, + { url = "https://files.pythonhosted.org/packages/95/e1/df13fe3ddbbea43567e07437f097863b20c99318ae1f58a0fe389f763738/rpds_py-0.25.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:5f048bbf18b1f9120685c6d6bb70cc1a52c8cc11bdd04e643d28d3be0baf666d", size = 373341, upload-time = "2025-05-21T12:43:02.978Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/deef4d30fcbcbfef3b6d82d17c64490d5c94585a2310544ce8e2d3024f83/rpds_py-0.25.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fbb0dbba559959fcb5d0735a0f87cdbca9e95dac87982e9b95c0f8f7ad10255", size = 359111, upload-time = "2025-05-21T12:43:05.128Z" }, + { url = "https://files.pythonhosted.org/packages/bb/7e/39f1f4431b03e96ebaf159e29a0f82a77259d8f38b2dd474721eb3a8ac9b/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4ca54b9cf9d80b4016a67a0193ebe0bcf29f6b0a96f09db942087e294d3d4c2", size = 386112, upload-time = "2025-05-21T12:43:07.13Z" }, + { url = "https://files.pythonhosted.org/packages/db/e7/847068a48d63aec2ae695a1646089620b3b03f8ccf9f02c122ebaf778f3c/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ee3e26eb83d39b886d2cb6e06ea701bba82ef30a0de044d34626ede51ec98b0", size = 400362, upload-time = "2025-05-21T12:43:08.693Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3d/9441d5db4343d0cee759a7ab4d67420a476cebb032081763de934719727b/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:89706d0683c73a26f76a5315d893c051324d771196ae8b13e6ffa1ffaf5e574f", size = 522214, upload-time = "2025-05-21T12:43:10.694Z" }, + { url = "https://files.pythonhosted.org/packages/a2/ec/2cc5b30d95f9f1a432c79c7a2f65d85e52812a8f6cbf8768724571710786/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c2013ee878c76269c7b557a9a9c042335d732e89d482606990b70a839635feb7", size = 411491, upload-time = "2025-05-21T12:43:12.739Z" }, + { url = "https://files.pythonhosted.org/packages/dc/6c/44695c1f035077a017dd472b6a3253553780837af2fac9b6ac25f6a5cb4d/rpds_py-0.25.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45e484db65e5380804afbec784522de84fa95e6bb92ef1bd3325d33d13efaebd", size = 386978, upload-time = "2025-05-21T12:43:14.25Z" }, + { url = "https://files.pythonhosted.org/packages/b1/74/b4357090bb1096db5392157b4e7ed8bb2417dc7799200fcbaee633a032c9/rpds_py-0.25.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:48d64155d02127c249695abb87d39f0faf410733428d499867606be138161d65", size = 420662, upload-time = "2025-05-21T12:43:15.8Z" }, + { url = "https://files.pythonhosted.org/packages/26/dd/8cadbebf47b96e59dfe8b35868e5c38a42272699324e95ed522da09d3a40/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:048893e902132fd6548a2e661fb38bf4896a89eea95ac5816cf443524a85556f", size = 563385, upload-time = "2025-05-21T12:43:17.78Z" }, + { url = "https://files.pythonhosted.org/packages/c3/ea/92960bb7f0e7a57a5ab233662f12152085c7dc0d5468534c65991a3d48c9/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0317177b1e8691ab5879f4f33f4b6dc55ad3b344399e23df2e499de7b10a548d", size = 592047, upload-time = "2025-05-21T12:43:19.457Z" }, + { url = "https://files.pythonhosted.org/packages/61/ad/71aabc93df0d05dabcb4b0c749277881f8e74548582d96aa1bf24379493a/rpds_py-0.25.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bffcf57826d77a4151962bf1701374e0fc87f536e56ec46f1abdd6a903354042", size = 557863, upload-time = "2025-05-21T12:43:21.69Z" }, + { url = "https://files.pythonhosted.org/packages/93/0f/89df0067c41f122b90b76f3660028a466eb287cbe38efec3ea70e637ca78/rpds_py-0.25.1-cp311-cp311-win32.whl", hash = "sha256:cda776f1967cb304816173b30994faaf2fd5bcb37e73118a47964a02c348e1bc", size = 219627, upload-time = "2025-05-21T12:43:23.311Z" }, + { url = "https://files.pythonhosted.org/packages/7c/8d/93b1a4c1baa903d0229374d9e7aa3466d751f1d65e268c52e6039c6e338e/rpds_py-0.25.1-cp311-cp311-win_amd64.whl", hash = "sha256:dc3c1ff0abc91444cd20ec643d0f805df9a3661fcacf9c95000329f3ddf268a4", size = 231603, upload-time = "2025-05-21T12:43:25.145Z" }, + { url = "https://files.pythonhosted.org/packages/cb/11/392605e5247bead2f23e6888e77229fbd714ac241ebbebb39a1e822c8815/rpds_py-0.25.1-cp311-cp311-win_arm64.whl", hash = "sha256:5a3ddb74b0985c4387719fc536faced33cadf2172769540c62e2a94b7b9be1c4", size = 223967, upload-time = "2025-05-21T12:43:26.566Z" }, + { url = "https://files.pythonhosted.org/packages/7f/81/28ab0408391b1dc57393653b6a0cf2014cc282cc2909e4615e63e58262be/rpds_py-0.25.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:b5ffe453cde61f73fea9430223c81d29e2fbf412a6073951102146c84e19e34c", size = 364647, upload-time = "2025-05-21T12:43:28.559Z" }, + { url = "https://files.pythonhosted.org/packages/2c/9a/7797f04cad0d5e56310e1238434f71fc6939d0bc517192a18bb99a72a95f/rpds_py-0.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:115874ae5e2fdcfc16b2aedc95b5eef4aebe91b28e7e21951eda8a5dc0d3461b", size = 350454, upload-time = "2025-05-21T12:43:30.615Z" }, + { url = "https://files.pythonhosted.org/packages/69/3c/93d2ef941b04898011e5d6eaa56a1acf46a3b4c9f4b3ad1bbcbafa0bee1f/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a714bf6e5e81b0e570d01f56e0c89c6375101b8463999ead3a93a5d2a4af91fa", size = 389665, upload-time = "2025-05-21T12:43:32.629Z" }, + { url = "https://files.pythonhosted.org/packages/c1/57/ad0e31e928751dde8903a11102559628d24173428a0f85e25e187defb2c1/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:35634369325906bcd01577da4c19e3b9541a15e99f31e91a02d010816b49bfda", size = 403873, upload-time = "2025-05-21T12:43:34.576Z" }, + { url = "https://files.pythonhosted.org/packages/16/ad/c0c652fa9bba778b4f54980a02962748479dc09632e1fd34e5282cf2556c/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4cb2b3ddc16710548801c6fcc0cfcdeeff9dafbc983f77265877793f2660309", size = 525866, upload-time = "2025-05-21T12:43:36.123Z" }, + { url = "https://files.pythonhosted.org/packages/2a/39/3e1839bc527e6fcf48d5fec4770070f872cdee6c6fbc9b259932f4e88a38/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ceca1cf097ed77e1a51f1dbc8d174d10cb5931c188a4505ff9f3e119dfe519b", size = 416886, upload-time = "2025-05-21T12:43:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/7a/95/dd6b91cd4560da41df9d7030a038298a67d24f8ca38e150562644c829c48/rpds_py-0.25.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c2cd1a4b0c2b8c5e31ffff50d09f39906fe351389ba143c195566056c13a7ea", size = 390666, upload-time = "2025-05-21T12:43:40.065Z" }, + { url = "https://files.pythonhosted.org/packages/64/48/1be88a820e7494ce0a15c2d390ccb7c52212370badabf128e6a7bb4cb802/rpds_py-0.25.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1de336a4b164c9188cb23f3703adb74a7623ab32d20090d0e9bf499a2203ad65", size = 425109, upload-time = "2025-05-21T12:43:42.263Z" }, + { url = "https://files.pythonhosted.org/packages/cf/07/3e2a17927ef6d7720b9949ec1b37d1e963b829ad0387f7af18d923d5cfa5/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9fca84a15333e925dd59ce01da0ffe2ffe0d6e5d29a9eeba2148916d1824948c", size = 567244, upload-time = "2025-05-21T12:43:43.846Z" }, + { url = "https://files.pythonhosted.org/packages/d2/e5/76cf010998deccc4f95305d827847e2eae9c568099c06b405cf96384762b/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:88ec04afe0c59fa64e2f6ea0dd9657e04fc83e38de90f6de201954b4d4eb59bd", size = 596023, upload-time = "2025-05-21T12:43:45.932Z" }, + { url = "https://files.pythonhosted.org/packages/52/9a/df55efd84403736ba37a5a6377b70aad0fd1cb469a9109ee8a1e21299a1c/rpds_py-0.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a8bd2f19e312ce3e1d2c635618e8a8d8132892bb746a7cf74780a489f0f6cdcb", size = 561634, upload-time = "2025-05-21T12:43:48.263Z" }, + { url = "https://files.pythonhosted.org/packages/ab/aa/dc3620dd8db84454aaf9374bd318f1aa02578bba5e567f5bf6b79492aca4/rpds_py-0.25.1-cp312-cp312-win32.whl", hash = "sha256:e5e2f7280d8d0d3ef06f3ec1b4fd598d386cc6f0721e54f09109a8132182fbfe", size = 222713, upload-time = "2025-05-21T12:43:49.897Z" }, + { url = "https://files.pythonhosted.org/packages/a3/7f/7cef485269a50ed5b4e9bae145f512d2a111ca638ae70cc101f661b4defd/rpds_py-0.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:db58483f71c5db67d643857404da360dce3573031586034b7d59f245144cc192", size = 235280, upload-time = "2025-05-21T12:43:51.893Z" }, + { url = "https://files.pythonhosted.org/packages/99/f2/c2d64f6564f32af913bf5f3f7ae41c7c263c5ae4c4e8f1a17af8af66cd46/rpds_py-0.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:6d50841c425d16faf3206ddbba44c21aa3310a0cebc3c1cdfc3e3f4f9f6f5728", size = 225399, upload-time = "2025-05-21T12:43:53.351Z" }, + { url = "https://files.pythonhosted.org/packages/2b/da/323848a2b62abe6a0fec16ebe199dc6889c5d0a332458da8985b2980dffe/rpds_py-0.25.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:659d87430a8c8c704d52d094f5ba6fa72ef13b4d385b7e542a08fc240cb4a559", size = 364498, upload-time = "2025-05-21T12:43:54.841Z" }, + { url = "https://files.pythonhosted.org/packages/1f/b4/4d3820f731c80fd0cd823b3e95b9963fec681ae45ba35b5281a42382c67d/rpds_py-0.25.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:68f6f060f0bbdfb0245267da014d3a6da9be127fe3e8cc4a68c6f833f8a23bb1", size = 350083, upload-time = "2025-05-21T12:43:56.428Z" }, + { url = "https://files.pythonhosted.org/packages/d5/b1/3a8ee1c9d480e8493619a437dec685d005f706b69253286f50f498cbdbcf/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:083a9513a33e0b92cf6e7a6366036c6bb43ea595332c1ab5c8ae329e4bcc0a9c", size = 389023, upload-time = "2025-05-21T12:43:57.995Z" }, + { url = "https://files.pythonhosted.org/packages/3b/31/17293edcfc934dc62c3bf74a0cb449ecd549531f956b72287203e6880b87/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:816568614ecb22b18a010c7a12559c19f6fe993526af88e95a76d5a60b8b75fb", size = 403283, upload-time = "2025-05-21T12:43:59.546Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ca/e0f0bc1a75a8925024f343258c8ecbd8828f8997ea2ac71e02f67b6f5299/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c6564c0947a7f52e4792983f8e6cf9bac140438ebf81f527a21d944f2fd0a40", size = 524634, upload-time = "2025-05-21T12:44:01.087Z" }, + { url = "https://files.pythonhosted.org/packages/3e/03/5d0be919037178fff33a6672ffc0afa04ea1cfcb61afd4119d1b5280ff0f/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c4a128527fe415d73cf1f70a9a688d06130d5810be69f3b553bf7b45e8acf79", size = 416233, upload-time = "2025-05-21T12:44:02.604Z" }, + { url = "https://files.pythonhosted.org/packages/05/7c/8abb70f9017a231c6c961a8941403ed6557664c0913e1bf413cbdc039e75/rpds_py-0.25.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a49e1d7a4978ed554f095430b89ecc23f42014a50ac385eb0c4d163ce213c325", size = 390375, upload-time = "2025-05-21T12:44:04.162Z" }, + { url = "https://files.pythonhosted.org/packages/7a/ac/a87f339f0e066b9535074a9f403b9313fd3892d4a164d5d5f5875ac9f29f/rpds_py-0.25.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d74ec9bc0e2feb81d3f16946b005748119c0f52a153f6db6a29e8cd68636f295", size = 424537, upload-time = "2025-05-21T12:44:06.175Z" }, + { url = "https://files.pythonhosted.org/packages/1f/8f/8d5c1567eaf8c8afe98a838dd24de5013ce6e8f53a01bd47fe8bb06b5533/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3af5b4cc10fa41e5bc64e5c198a1b2d2864337f8fcbb9a67e747e34002ce812b", size = 566425, upload-time = "2025-05-21T12:44:08.242Z" }, + { url = "https://files.pythonhosted.org/packages/95/33/03016a6be5663b389c8ab0bbbcca68d9e96af14faeff0a04affcb587e776/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:79dc317a5f1c51fd9c6a0c4f48209c6b8526d0524a6904fc1076476e79b00f98", size = 595197, upload-time = "2025-05-21T12:44:10.449Z" }, + { url = "https://files.pythonhosted.org/packages/33/8d/da9f4d3e208c82fda311bff0cf0a19579afceb77cf456e46c559a1c075ba/rpds_py-0.25.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1521031351865e0181bc585147624d66b3b00a84109b57fcb7a779c3ec3772cd", size = 561244, upload-time = "2025-05-21T12:44:12.387Z" }, + { url = "https://files.pythonhosted.org/packages/e2/b3/39d5dcf7c5f742ecd6dbc88f6f84ae54184b92f5f387a4053be2107b17f1/rpds_py-0.25.1-cp313-cp313-win32.whl", hash = "sha256:5d473be2b13600b93a5675d78f59e63b51b1ba2d0476893415dfbb5477e65b31", size = 222254, upload-time = "2025-05-21T12:44:14.261Z" }, + { url = "https://files.pythonhosted.org/packages/5f/19/2d6772c8eeb8302c5f834e6d0dfd83935a884e7c5ce16340c7eaf89ce925/rpds_py-0.25.1-cp313-cp313-win_amd64.whl", hash = "sha256:a7b74e92a3b212390bdce1d93da9f6488c3878c1d434c5e751cbc202c5e09500", size = 234741, upload-time = "2025-05-21T12:44:16.236Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/145ada26cfaf86018d0eb304fe55eafdd4f0b6b84530246bb4a7c4fb5c4b/rpds_py-0.25.1-cp313-cp313-win_arm64.whl", hash = "sha256:dd326a81afe332ede08eb39ab75b301d5676802cdffd3a8f287a5f0b694dc3f5", size = 224830, upload-time = "2025-05-21T12:44:17.749Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ca/d435844829c384fd2c22754ff65889c5c556a675d2ed9eb0e148435c6690/rpds_py-0.25.1-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:a58d1ed49a94d4183483a3ce0af22f20318d4a1434acee255d683ad90bf78129", size = 359668, upload-time = "2025-05-21T12:44:19.322Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/b056f21db3a09f89410d493d2f6614d87bb162499f98b649d1dbd2a81988/rpds_py-0.25.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f251bf23deb8332823aef1da169d5d89fa84c89f67bdfb566c49dea1fccfd50d", size = 345649, upload-time = "2025-05-21T12:44:20.962Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0f/e0d00dc991e3d40e03ca36383b44995126c36b3eafa0ccbbd19664709c88/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8dbd586bfa270c1103ece2109314dd423df1fa3d9719928b5d09e4840cec0d72", size = 384776, upload-time = "2025-05-21T12:44:22.516Z" }, + { url = "https://files.pythonhosted.org/packages/9f/a2/59374837f105f2ca79bde3c3cd1065b2f8c01678900924949f6392eab66d/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6d273f136e912aa101a9274c3145dcbddbe4bac560e77e6d5b3c9f6e0ed06d34", size = 395131, upload-time = "2025-05-21T12:44:24.147Z" }, + { url = "https://files.pythonhosted.org/packages/9c/dc/48e8d84887627a0fe0bac53f0b4631e90976fd5d35fff8be66b8e4f3916b/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:666fa7b1bd0a3810a7f18f6d3a25ccd8866291fbbc3c9b912b917a6715874bb9", size = 520942, upload-time = "2025-05-21T12:44:25.915Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f5/ee056966aeae401913d37befeeab57a4a43a4f00099e0a20297f17b8f00c/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:921954d7fbf3fccc7de8f717799304b14b6d9a45bbeec5a8d7408ccbf531faf5", size = 411330, upload-time = "2025-05-21T12:44:27.638Z" }, + { url = "https://files.pythonhosted.org/packages/ab/74/b2cffb46a097cefe5d17f94ede7a174184b9d158a0aeb195f39f2c0361e8/rpds_py-0.25.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3d86373ff19ca0441ebeb696ef64cb58b8b5cbacffcda5a0ec2f3911732a194", size = 387339, upload-time = "2025-05-21T12:44:29.292Z" }, + { url = "https://files.pythonhosted.org/packages/7f/9a/0ff0b375dcb5161c2b7054e7d0b7575f1680127505945f5cabaac890bc07/rpds_py-0.25.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c8980cde3bb8575e7c956a530f2c217c1d6aac453474bf3ea0f9c89868b531b6", size = 418077, upload-time = "2025-05-21T12:44:30.877Z" }, + { url = "https://files.pythonhosted.org/packages/0d/a1/fda629bf20d6b698ae84c7c840cfb0e9e4200f664fc96e1f456f00e4ad6e/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:8eb8c84ecea987a2523e057c0d950bcb3f789696c0499290b8d7b3107a719d78", size = 562441, upload-time = "2025-05-21T12:44:32.541Z" }, + { url = "https://files.pythonhosted.org/packages/20/15/ce4b5257f654132f326f4acd87268e1006cc071e2c59794c5bdf4bebbb51/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:e43a005671a9ed5a650f3bc39e4dbccd6d4326b24fb5ea8be5f3a43a6f576c72", size = 590750, upload-time = "2025-05-21T12:44:34.557Z" }, + { url = "https://files.pythonhosted.org/packages/fb/ab/e04bf58a8d375aeedb5268edcc835c6a660ebf79d4384d8e0889439448b0/rpds_py-0.25.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:58f77c60956501a4a627749a6dcb78dac522f249dd96b5c9f1c6af29bfacfb66", size = 558891, upload-time = "2025-05-21T12:44:37.358Z" }, + { url = "https://files.pythonhosted.org/packages/90/82/cb8c6028a6ef6cd2b7991e2e4ced01c854b6236ecf51e81b64b569c43d73/rpds_py-0.25.1-cp313-cp313t-win32.whl", hash = "sha256:2cb9e5b5e26fc02c8a4345048cd9998c2aca7c2712bd1b36da0c72ee969a3523", size = 218718, upload-time = "2025-05-21T12:44:38.969Z" }, + { url = "https://files.pythonhosted.org/packages/b6/97/5a4b59697111c89477d20ba8a44df9ca16b41e737fa569d5ae8bff99e650/rpds_py-0.25.1-cp313-cp313t-win_amd64.whl", hash = "sha256:401ca1c4a20cc0510d3435d89c069fe0a9ae2ee6495135ac46bdd49ec0495763", size = 232218, upload-time = "2025-05-21T12:44:40.512Z" }, + { url = "https://files.pythonhosted.org/packages/89/74/716d42058ef501e2c08f27aa3ff455f6fc1bbbd19a6ab8dea07e6322d217/rpds_py-0.25.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ce4c8e485a3c59593f1a6f683cf0ea5ab1c1dc94d11eea5619e4fb5228b40fbd", size = 373475, upload-time = "2025-05-21T12:44:42.136Z" }, + { url = "https://files.pythonhosted.org/packages/e1/21/3faa9c523e2496a2505d7440b6f24c9166f37cb7ac027cac6cfbda9b4b5f/rpds_py-0.25.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d8222acdb51a22929c3b2ddb236b69c59c72af4019d2cba961e2f9add9b6e634", size = 359349, upload-time = "2025-05-21T12:44:43.813Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1c/c747fe568d21b1d679079b52b926ebc4d1497457510a1773dc5fd4b7b4e2/rpds_py-0.25.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4593c4eae9b27d22df41cde518b4b9e4464d139e4322e2127daa9b5b981b76be", size = 386526, upload-time = "2025-05-21T12:44:45.452Z" }, + { url = "https://files.pythonhosted.org/packages/0b/cc/4a41703de4fb291f13660fa3d882cbd39db5d60497c6e7fa7f5142e5e69f/rpds_py-0.25.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd035756830c712b64725a76327ce80e82ed12ebab361d3a1cdc0f51ea21acb0", size = 400526, upload-time = "2025-05-21T12:44:47.011Z" }, + { url = "https://files.pythonhosted.org/packages/f1/78/60c980bedcad8418b614f0b4d6d420ecf11225b579cec0cb4e84d168b4da/rpds_py-0.25.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:114a07e85f32b125404f28f2ed0ba431685151c037a26032b213c882f26eb908", size = 525726, upload-time = "2025-05-21T12:44:48.838Z" }, + { url = "https://files.pythonhosted.org/packages/3f/37/f2f36b7f1314b3c3200d663decf2f8e29480492a39ab22447112aead4693/rpds_py-0.25.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dec21e02e6cc932538b5203d3a8bd6aa1480c98c4914cb88eea064ecdbc6396a", size = 412045, upload-time = "2025-05-21T12:44:50.433Z" }, + { url = "https://files.pythonhosted.org/packages/df/96/e03783e87a775b1242477ccbc35895f8e9b2bbdb60e199034a6da03c2687/rpds_py-0.25.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:09eab132f41bf792c7a0ea1578e55df3f3e7f61888e340779b06050a9a3f16e9", size = 386953, upload-time = "2025-05-21T12:44:52.092Z" }, + { url = "https://files.pythonhosted.org/packages/7c/7d/1418f4b69bfb4b40481a3d84782113ad7d4cca0b38ae70b982dd5b20102a/rpds_py-0.25.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c98f126c4fc697b84c423e387337d5b07e4a61e9feac494362a59fd7a2d9ed80", size = 421144, upload-time = "2025-05-21T12:44:53.734Z" }, + { url = "https://files.pythonhosted.org/packages/b3/0e/61469912c6493ee3808012e60f4930344b974fcb6b35c4348e70b6be7bc7/rpds_py-0.25.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0e6a327af8ebf6baba1c10fadd04964c1965d375d318f4435d5f3f9651550f4a", size = 563730, upload-time = "2025-05-21T12:44:55.846Z" }, + { url = "https://files.pythonhosted.org/packages/f6/86/6d0a5cc56481ac61977b7c839677ed5c63d38cf0fcb3e2280843a8a6f476/rpds_py-0.25.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:bc120d1132cff853ff617754196d0ac0ae63befe7c8498bd67731ba368abe451", size = 592321, upload-time = "2025-05-21T12:44:57.514Z" }, + { url = "https://files.pythonhosted.org/packages/5d/87/d1e2453fe336f71e6aa296452a8c85c2118b587b1d25ce98014f75838a60/rpds_py-0.25.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:140f61d9bed7839446bdd44852e30195c8e520f81329b4201ceead4d64eb3a9f", size = 558162, upload-time = "2025-05-21T12:44:59.564Z" }, + { url = "https://files.pythonhosted.org/packages/ad/92/349f04b1644c5cef3e2e6c53b7168a28531945f9e6fca7425f6d20ddbc3c/rpds_py-0.25.1-cp39-cp39-win32.whl", hash = "sha256:9c006f3aadeda131b438c3092124bd196b66312f0caa5823ef09585a669cf449", size = 219920, upload-time = "2025-05-21T12:45:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/f2/84/3969bef883a3f37ff2213795257cb7b7e93a115829670befb8de0e003031/rpds_py-0.25.1-cp39-cp39-win_amd64.whl", hash = "sha256:a61d0b2c7c9a0ae45732a77844917b427ff16ad5464b4d4f5e4adb955f582890", size = 231452, upload-time = "2025-05-21T12:45:02.85Z" }, + { url = "https://files.pythonhosted.org/packages/78/ff/566ce53529b12b4f10c0a348d316bd766970b7060b4fd50f888be3b3b281/rpds_py-0.25.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b24bf3cd93d5b6ecfbedec73b15f143596c88ee249fa98cefa9a9dc9d92c6f28", size = 373931, upload-time = "2025-05-21T12:45:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/83/5d/deba18503f7c7878e26aa696e97f051175788e19d5336b3b0e76d3ef9256/rpds_py-0.25.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:0eb90e94f43e5085623932b68840b6f379f26db7b5c2e6bcef3179bd83c9330f", size = 359074, upload-time = "2025-05-21T12:45:06.714Z" }, + { url = "https://files.pythonhosted.org/packages/0d/74/313415c5627644eb114df49c56a27edba4d40cfd7c92bd90212b3604ca84/rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d50e4864498a9ab639d6d8854b25e80642bd362ff104312d9770b05d66e5fb13", size = 387255, upload-time = "2025-05-21T12:45:08.669Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c8/c723298ed6338963d94e05c0f12793acc9b91d04ed7c4ba7508e534b7385/rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7c9409b47ba0650544b0bb3c188243b83654dfe55dcc173a86832314e1a6a35d", size = 400714, upload-time = "2025-05-21T12:45:10.39Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/51f1f6aa653c2e110ed482ef2ae94140d56c910378752a1b483af11019ee/rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:796ad874c89127c91970652a4ee8b00d56368b7e00d3477f4415fe78164c8000", size = 523105, upload-time = "2025-05-21T12:45:12.273Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a4/7873d15c088ad3bff36910b29ceb0f178e4b3232c2adbe9198de68a41e63/rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85608eb70a659bf4c1142b2781083d4b7c0c4e2c90eff11856a9754e965b2540", size = 411499, upload-time = "2025-05-21T12:45:13.95Z" }, + { url = "https://files.pythonhosted.org/packages/90/f3/0ce1437befe1410766d11d08239333ac1b2d940f8a64234ce48a7714669c/rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4feb9211d15d9160bc85fa72fed46432cdc143eb9cf6d5ca377335a921ac37b", size = 387918, upload-time = "2025-05-21T12:45:15.649Z" }, + { url = "https://files.pythonhosted.org/packages/94/d4/5551247988b2a3566afb8a9dba3f1d4a3eea47793fd83000276c1a6c726e/rpds_py-0.25.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ccfa689b9246c48947d31dd9d8b16d89a0ecc8e0e26ea5253068efb6c542b76e", size = 421705, upload-time = "2025-05-21T12:45:17.788Z" }, + { url = "https://files.pythonhosted.org/packages/b0/25/5960f28f847bf736cc7ee3c545a7e1d2f3b5edaf82c96fb616c2f5ed52d0/rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3c5b317ecbd8226887994852e85de562f7177add602514d4ac40f87de3ae45a8", size = 564489, upload-time = "2025-05-21T12:45:19.466Z" }, + { url = "https://files.pythonhosted.org/packages/02/66/1c99884a0d44e8c2904d3c4ec302f995292d5dde892c3bf7685ac1930146/rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:454601988aab2c6e8fd49e7634c65476b2b919647626208e376afcd22019eeb8", size = 592557, upload-time = "2025-05-21T12:45:21.362Z" }, + { url = "https://files.pythonhosted.org/packages/55/ae/4aeac84ebeffeac14abb05b3bb1d2f728d00adb55d3fb7b51c9fa772e760/rpds_py-0.25.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:1c0c434a53714358532d13539272db75a5ed9df75a4a090a753ac7173ec14e11", size = 558691, upload-time = "2025-05-21T12:45:23.084Z" }, + { url = "https://files.pythonhosted.org/packages/41/b3/728a08ff6f5e06fe3bb9af2e770e9d5fd20141af45cff8dfc62da4b2d0b3/rpds_py-0.25.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:f73ce1512e04fbe2bc97836e89830d6b4314c171587a99688082d090f934d20a", size = 231651, upload-time = "2025-05-21T12:45:24.72Z" }, + { url = "https://files.pythonhosted.org/packages/49/74/48f3df0715a585cbf5d34919c9c757a4c92c1a9eba059f2d334e72471f70/rpds_py-0.25.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ee86d81551ec68a5c25373c5643d343150cc54672b5e9a0cafc93c1870a53954", size = 374208, upload-time = "2025-05-21T12:45:26.306Z" }, + { url = "https://files.pythonhosted.org/packages/55/b0/9b01bb11ce01ec03d05e627249cc2c06039d6aa24ea5a22a39c312167c10/rpds_py-0.25.1-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:89c24300cd4a8e4a51e55c31a8ff3918e6651b241ee8876a42cc2b2a078533ba", size = 359262, upload-time = "2025-05-21T12:45:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/a9/eb/5395621618f723ebd5116c53282052943a726dba111b49cd2071f785b665/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:771c16060ff4e79584dc48902a91ba79fd93eade3aa3a12d6d2a4aadaf7d542b", size = 387366, upload-time = "2025-05-21T12:45:30.42Z" }, + { url = "https://files.pythonhosted.org/packages/68/73/3d51442bdb246db619d75039a50ea1cf8b5b4ee250c3e5cd5c3af5981cd4/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:785ffacd0ee61c3e60bdfde93baa6d7c10d86f15655bd706c89da08068dc5038", size = 400759, upload-time = "2025-05-21T12:45:32.516Z" }, + { url = "https://files.pythonhosted.org/packages/b7/4c/3a32d5955d7e6cb117314597bc0f2224efc798428318b13073efe306512a/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a40046a529cc15cef88ac5ab589f83f739e2d332cb4d7399072242400ed68c9", size = 523128, upload-time = "2025-05-21T12:45:34.396Z" }, + { url = "https://files.pythonhosted.org/packages/be/95/1ffccd3b0bb901ae60b1dd4b1be2ab98bb4eb834cd9b15199888f5702f7b/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:85fc223d9c76cabe5d0bff82214459189720dc135db45f9f66aa7cffbf9ff6c1", size = 411597, upload-time = "2025-05-21T12:45:36.164Z" }, + { url = "https://files.pythonhosted.org/packages/ef/6d/6e6cd310180689db8b0d2de7f7d1eabf3fb013f239e156ae0d5a1a85c27f/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0be9965f93c222fb9b4cc254235b3b2b215796c03ef5ee64f995b1b69af0762", size = 388053, upload-time = "2025-05-21T12:45:38.45Z" }, + { url = "https://files.pythonhosted.org/packages/4a/87/ec4186b1fe6365ced6fa470960e68fc7804bafbe7c0cf5a36237aa240efa/rpds_py-0.25.1-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8378fa4a940f3fb509c081e06cb7f7f2adae8cf46ef258b0e0ed7519facd573e", size = 421821, upload-time = "2025-05-21T12:45:40.732Z" }, + { url = "https://files.pythonhosted.org/packages/7a/60/84f821f6bf4e0e710acc5039d91f8f594fae0d93fc368704920d8971680d/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:33358883a4490287e67a2c391dfaea4d9359860281db3292b6886bf0be3d8692", size = 564534, upload-time = "2025-05-21T12:45:42.672Z" }, + { url = "https://files.pythonhosted.org/packages/41/3a/bc654eb15d3b38f9330fe0f545016ba154d89cdabc6177b0295910cd0ebe/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:1d1fadd539298e70cac2f2cb36f5b8a65f742b9b9f1014dd4ea1f7785e2470bf", size = 592674, upload-time = "2025-05-21T12:45:44.533Z" }, + { url = "https://files.pythonhosted.org/packages/2e/ba/31239736f29e4dfc7a58a45955c5db852864c306131fd6320aea214d5437/rpds_py-0.25.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9a46c2fb2545e21181445515960006e85d22025bd2fe6db23e76daec6eb689fe", size = 558781, upload-time = "2025-05-21T12:45:46.281Z" }, + { url = "https://files.pythonhosted.org/packages/78/b2/198266f070c6760e0e8cd00f9f2b9c86133ceebbe7c6d114bdcfea200180/rpds_py-0.25.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:50f2c501a89c9a5f4e454b126193c5495b9fb441a75b298c60591d8a2eb92e1b", size = 373973, upload-time = "2025-05-21T12:45:48.081Z" }, + { url = "https://files.pythonhosted.org/packages/13/79/1265eae618f88aa5d5e7122bd32dd41700bafe5a8bcea404e998848cd844/rpds_py-0.25.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7d779b325cc8238227c47fbc53964c8cc9a941d5dbae87aa007a1f08f2f77b23", size = 359326, upload-time = "2025-05-21T12:45:49.825Z" }, + { url = "https://files.pythonhosted.org/packages/30/ab/6913b96f3ac072e87e76e45fe938263b0ab0d78b6b2cef3f2e56067befc0/rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:036ded36bedb727beeabc16dc1dad7cb154b3fa444e936a03b67a86dc6a5066e", size = 387544, upload-time = "2025-05-21T12:45:51.764Z" }, + { url = "https://files.pythonhosted.org/packages/b0/23/129ed12d25229acc6deb8cbe90baadd8762e563c267c9594eb2fcc15be0c/rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:245550f5a1ac98504147cba96ffec8fabc22b610742e9150138e5d60774686d7", size = 400240, upload-time = "2025-05-21T12:45:54.061Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e0/6811a38a5efa46b7ee6ed2103c95cb9abb16991544c3b69007aa679b6944/rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ff7c23ba0a88cb7b104281a99476cccadf29de2a0ef5ce864959a52675b1ca83", size = 525599, upload-time = "2025-05-21T12:45:56.457Z" }, + { url = "https://files.pythonhosted.org/packages/6c/10/2dc88bcaa0d86bdb59e017a330b1972ffeeb7f5061bb5a180c9a2bb73bbf/rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e37caa8cdb3b7cf24786451a0bdb853f6347b8b92005eeb64225ae1db54d1c2b", size = 411154, upload-time = "2025-05-21T12:45:58.525Z" }, + { url = "https://files.pythonhosted.org/packages/cf/d1/a72d522eb7d934fb33e9c501e6ecae00e2035af924d4ff37d964e9a3959b/rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f2f48ab00181600ee266a095fe815134eb456163f7d6699f525dee471f312cf", size = 388297, upload-time = "2025-05-21T12:46:00.264Z" }, + { url = "https://files.pythonhosted.org/packages/55/90/0dd7169ec74f042405b6b73512200d637a3088c156f64e1c07c18aa2fe59/rpds_py-0.25.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9e5fc7484fa7dce57e25063b0ec9638ff02a908304f861d81ea49273e43838c1", size = 421894, upload-time = "2025-05-21T12:46:02.065Z" }, + { url = "https://files.pythonhosted.org/packages/37/e9/45170894add451783ed839c5c4a495e050aa8baa06d720364d9dff394dac/rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d3c10228d6cf6fe2b63d2e7985e94f6916fa46940df46b70449e9ff9297bd3d1", size = 564409, upload-time = "2025-05-21T12:46:03.891Z" }, + { url = "https://files.pythonhosted.org/packages/59/d0/31cece9090e76fbdb50c758c165d40da604b03b37c3ba53f010bbfeb130a/rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:5d9e40f32745db28c1ef7aad23f6fc458dc1e29945bd6781060f0d15628b8ddf", size = 592681, upload-time = "2025-05-21T12:46:06.009Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4c/22ef535efb2beec614ba7be83e62b439eb83b0b0d7b1775e22d35af3f9b5/rpds_py-0.25.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:35a8d1a24b5936b35c5003313bc177403d8bdef0f8b24f28b1c4a255f94ea992", size = 558744, upload-time = "2025-05-21T12:46:07.78Z" }, + { url = "https://files.pythonhosted.org/packages/79/ff/f2150efc8daf0581d4dfaf0a2a30b08088b6df900230ee5ae4f7c8cd5163/rpds_py-0.25.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6099263f526efff9cf3883dfef505518730f7a7a93049b1d90d42e50a22b4793", size = 231305, upload-time = "2025-05-21T12:46:10.52Z" }, ] [[package]]