diff mbox series

[meta-python,43/61] python3-starlette: Upgrade 1.6.0 -> 1.10.0

Message ID 20261027092028.782979-43-leon.anavi@konsulko.com
State New
Headers show
Series [meta-python,01/61] python3-asgiref: Upgrade 3.12.1 -> 3.13.0 | expand

Commit Message

Leon Anavi Oct. 27, 2026, 9:20 a.m. UTC
Upgrade to release 1.10.0:

Leaner URL-encoded form parsing:

Starlette 1.10.0 parses URL-encoded forms with less memory and CPU, no
longer drops the last field when a stream ends early, and lets you
compare FormData that holds several uploads under one key.

- Forms with many fields parse faster and use less memory (#3724).
  FormParser builds each field in the parser callbacks instead of
  queueing every event and replaying it. On CodSpeed, 1000 fields
  went from 42.8 ms to 34.9 ms and from 63.5 KB to 54.5 KB, and the
  max_fields limit case went from 6,880 B to 864 B.
- The last field is kept when the request stream ends without an
  empty chunk (#3599). The parser is now finalized once the stream
  is exhausted, so custom streams that never yield a final b"" no
  longer lose their last field.
- FormData with repeated uploads can be compared (#3619). Comparing
  two FormData objects with several UploadFile values under the
  same key used to raise TypeError.

Behaviour changes:

- Multidict equality keeps the order of values under a repeated key
  (#3619). Keys can still appear in any order, but
  QueryParams("a=1&a=2") and QueryParams("a=2&a=1") are no longer
  equal, matching what getlist() returns.
- starlette.formparsers.FormMessage is deprecated (#3724). The
  parser no longer uses it, and FormParser.messages is gone.
  Calling FormMessage(...) emits a StarletteDeprecationWarning.

Routing and URL generation:

- Path parameter values that look like a placeholder are kept as
  they are (#3725). url_path_for("route", category="{id}", id="42")
  on /{category}/{id} now returns /{id}/42 instead of /42/42.
  Substitution also got faster, from 549 ns to 520 ns with two
  parameters and from 1,078 ns to 779 ns with five.
- Route matching does less work per request (#3665, #3722). Match
  members are compared by identity, cutting up to 4.9% of the
  instructions per dispatch in the routing benchmarks.
- WSGIMiddleware strips root_path only at a path segment boundary
  (#3718). A request to /application under a root_path of /app no
  longer becomes /lication.
- FloatConvertor reports NaN and infinity correctly (#3716). NaN
  was reported as a negative float.

Middleware, responses and config:

- Handled exceptions no longer keep requests alive (#3205).
  Starlette clears the traceback after an exception handler runs,
  so an exception instance reused across requests, such as a
  module-level HTTPException, no longer pins per-request objects in
  memory.
- Middlewares accept http.response.start without headers (#3721).
  BaseHTTPMiddleware, GZipMiddleware and SessionMiddleware default
  the omitted field to an empty list instead of raising KeyError.
- FileResponse ignores Range on methods other than GET and HEAD
  (#3679). A POST endpoint that returns a file now sends the full
  file, as RFC 9110 requires.
- Config strips one pair of matching outer quotes from env file
  values (#3720). KEY='say "hi"' now reads as say "hi" instead of
  say "hi.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
 .../{python3-starlette_1.6.0.bb => python3-starlette_1.10.0.bb} | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
 rename meta-python/recipes-devtools/python/{python3-starlette_1.6.0.bb => python3-starlette_1.10.0.bb} (92%)
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-starlette_1.6.0.bb b/meta-python/recipes-devtools/python/python3-starlette_1.10.0.bb
similarity index 92%
rename from meta-python/recipes-devtools/python/python3-starlette_1.6.0.bb
rename to meta-python/recipes-devtools/python/python3-starlette_1.10.0.bb
index 45ba3a5311..dcd103bd87 100644
--- a/meta-python/recipes-devtools/python/python3-starlette_1.6.0.bb
+++ b/meta-python/recipes-devtools/python/python3-starlette_1.10.0.bb
@@ -2,7 +2,7 @@  SUMMARY = "Starlette is a lightweight ASGI framework/toolkit, which is ideal for
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.md;md5=11e8c8dbfd5fa373c703de492140ff7a"
 
-SRC_URI[sha256sum] = "d4e3ac5e546444960c710297a3c9fc3f7ebae1b7e963f3d36173b49da535be9b"
+SRC_URI[sha256sum] = "b8399098d4c1e3522734f7235dc79b1fc967f96cf139c81e0fa30479e0685f9b"
 
 inherit pypi python_hatchling ptest