diff --git a/python-starlette.changes b/python-starlette.changes index 994e00a..cf29dd6 100644 --- a/python-starlette.changes +++ b/python-starlette.changes @@ -1,3 +1,38 @@ +------------------------------------------------------------------- +Thu May 1 06:01:43 UTC 2025 - Steve Kowalik + +- Update to 0.46.2: + * Added + + GZipMiddleware: Make sure Vary header is always added if a response can + be compressed + + Add max_part_size parameter to Request.form() + + Add client parameter to TestClient + + Make UUID path parameter conversion more flexible + + Raise ClientDisconnect on StreamingResponse + * Fixed + + Use correct index on backwards compatible logic in TemplateResponse + + Prevents reraising of exception from BaseHTTPMiddleware + + w relative directory path when follow_symlinks=True + + Raise exception from background task on BaseHTTPMiddleware + + GZipMiddleware: Don't compress on server sent events + + Turn directory into string on lookup_path on commonpath comparison + + Make create_memory_object_stream compatible with old anyio versions + once again, and bump anyio minimum version to 3.6.2 + + Collect errors more reliably from WebSocket test client + + Fix unclosed MemoryObjectReceiveStream upon exception in + BaseHTTPMiddleware children + + Use ETag from headers when parsing If-Range in FileResponse + + Follow directory symlinks in StaticFiles when follow_symlinks=True + + Bump minimum python-multipart version to 0.0.18 + + Bump minimum httpx version to 0.27.0 + * Removed + + Drop Python 3.8 + + Remove ExceptionMiddleware import proxy from starlette.exceptions + module + + Remove deprecated WS_1004_NO_STATUS_RCVD and WS_1005_ABNORMAL_CLOSURE + + Remove deprecated allow_redirects argument from TestClient +- Drop patch starlette-pr2773-httpx0.28.patch, included upstream. + ------------------------------------------------------------------- Thu Dec 12 16:09:18 UTC 2024 - Ben Greiner diff --git a/python-starlette.spec b/python-starlette.spec index 7790796..9f6b65a 100644 --- a/python-starlette.spec +++ b/python-starlette.spec @@ -1,7 +1,7 @@ # # spec file for package python-starlette # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -27,31 +27,29 @@ %{?sle15_python_module_pythons} Name: python-starlette%{psuffix} -Version: 0.41.3 +Version: 0.46.2 Release: 0 Summary: Lightweight ASGI framework/toolkit License: BSD-3-Clause URL: https://github.com/encode/starlette Source: https://github.com/encode/starlette/archive/refs/tags/%{version}.tar.gz#/starlette-%{version}.tar.gz -# PATCH-FIX-UPSTREAM starlette-pr2773-httpx0.28.patch gh#encode/starlette#2773 -Patch0: https://github.com/encode/starlette/pull/2773.patch#/starlette-pr2773-httpx0.28.patch -BuildRequires: %{python_module base >= 3.8} +BuildRequires: %{python_module base >= 3.9} BuildRequires: %{python_module hatchling} BuildRequires: %{python_module pip} BuildRequires: fdupes BuildRequires: python-rpm-macros -Requires: python-anyio >= 3.4.0 +Requires: python-anyio >= 3.6.2 Requires: (python-typing_extensions >= 3.10.0 if python-base < 3.10) BuildArch: noarch %if %{with test} -BuildRequires: %{python_module anyio >= 3.4.0} +BuildRequires: %{python_module anyio >= 3.6.2} # typing_extensions, see below # SECTION [full] BuildRequires: %{python_module PyYAML} BuildRequires: %{python_module Jinja2} BuildRequires: %{python_module httpx >= 0.28} BuildRequires: %{python_module itsdangerous} -BuildRequires: %{python_module python-multipart >= 0.0.7} +BuildRequires: %{python_module python-multipart >= 0.0.18} # /SECTION # SECTION test BuildRequires: %{python_module exceptiongroup} @@ -93,7 +91,7 @@ building high performance asyncio services. ignored_tests="test_set_cookie" ignored_tests="$ignored_tests or test_expires_on_set_cookie" # fails to raise a deprecation warning as of 2024/04/25 -ignored_tests="$ignored_tests or test_lifespan_with_on_events" +##ignored_tests="$ignored_tests or test_lifespan_with_on_events" %pytest -W ignore::PendingDeprecationWarning --asyncio-mode=strict -k "not ($ignored_tests)" %endif diff --git a/starlette-0.41.3.tar.gz b/starlette-0.41.3.tar.gz deleted file mode 100644 index 7243fbb..0000000 --- a/starlette-0.41.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a00307be5dfaf5acb971e1750096178782f234c4834b39e7d8ca097877b8638 -size 2574193 diff --git a/starlette-0.46.2.tar.gz b/starlette-0.46.2.tar.gz new file mode 100644 index 0000000..866eb5d --- /dev/null +++ b/starlette-0.46.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef04e3468b7921a75e653cb2acbfc33a8090211595b19d7d49b0618369c459b7 +size 2580854 diff --git a/starlette-pr2773-httpx0.28.patch b/starlette-pr2773-httpx0.28.patch deleted file mode 100644 index 0bb8a67..0000000 --- a/starlette-pr2773-httpx0.28.patch +++ /dev/null @@ -1,68 +0,0 @@ -From b781c571068f4afc0417c7dfb8df2eda0547af55 Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 30 Nov 2024 10:32:50 +0100 -Subject: [PATCH 1/2] Pin httpx in `full` extra - ---- - pyproject.toml | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/pyproject.toml b/pyproject.toml -index a532e4628..598d4333b 100644 ---- a/pyproject.toml -+++ b/pyproject.toml -@@ -37,7 +37,7 @@ full = [ - "jinja2", - "python-multipart>=0.0.7", - "pyyaml", -- "httpx>=0.22.0", -+ "httpx>=0.27.0,<0.29.0", - ] - - [project.urls] - -From 24de2bfc8aa99a084a9b4fcfab1e52d7a6747cd9 Mon Sep 17 00:00:00 2001 -From: Marcelo Trylesinski -Date: Sat, 30 Nov 2024 10:51:11 +0100 -Subject: [PATCH 2/2] fix test - ---- - tests/middleware/test_wsgi.py | 2 +- - tests/test_requests.py | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/middleware/test_wsgi.py b/tests/middleware/test_wsgi.py -index 58696bb65..e4ac66ab4 100644 ---- a/tests/middleware/test_wsgi.py -+++ b/tests/middleware/test_wsgi.py -@@ -77,7 +77,7 @@ def test_wsgi_post(test_client_factory: TestClientFactory) -> None: - client = test_client_factory(app) - response = client.post("/", json={"example": 123}) - assert response.status_code == 200 -- assert response.text == '{"example": 123}' -+ assert response.text == '{"example":123}' - - - def test_wsgi_exception(test_client_factory: TestClientFactory) -> None: -diff --git a/tests/test_requests.py b/tests/test_requests.py -index f0494e751..665dceb87 100644 ---- a/tests/test_requests.py -+++ b/tests/test_requests.py -@@ -91,7 +91,7 @@ async def app(scope: Scope, receive: Receive, send: Send) -> None: - assert response.json() == {"body": ""} - - response = client.post("/", json={"a": "123"}) -- assert response.json() == {"body": '{"a": "123"}'} -+ assert response.json() == {"body": '{"a":"123"}'} - - response = client.post("/", data="abc") # type: ignore - assert response.json() == {"body": "abc"} -@@ -112,7 +112,7 @@ async def app(scope: Scope, receive: Receive, send: Send) -> None: - assert response.json() == {"body": ""} - - response = client.post("/", json={"a": "123"}) -- assert response.json() == {"body": '{"a": "123"}'} -+ assert response.json() == {"body": '{"a":"123"}'} - - response = client.post("/", data="abc") # type: ignore - assert response.json() == {"body": "abc"}