14
0

- 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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-starlette?expand=0&rev=62
This commit is contained in:
2025-05-01 06:06:15 +00:00
committed by Git OBS Bridge
parent 554926720d
commit 1eac7955e7
5 changed files with 45 additions and 80 deletions

View File

@@ -1,3 +1,38 @@
-------------------------------------------------------------------
Thu May 1 06:01:43 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>
- 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 <code@bnavigator.de>

View File

@@ -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

BIN
starlette-0.41.3.tar.gz (Stored with Git LFS)

Binary file not shown.

3
starlette-0.46.2.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ef04e3468b7921a75e653cb2acbfc33a8090211595b19d7d49b0618369c459b7
size 2580854

View File

@@ -1,68 +0,0 @@
From b781c571068f4afc0417c7dfb8df2eda0547af55 Mon Sep 17 00:00:00 2001
From: Marcelo Trylesinski <marcelotryle@gmail.com>
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 <marcelotryle@gmail.com>
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"}