From 973c2f89e0ada4d69f74378752b76051ef6f2709fbf692b0cdf3b77752093b90 Mon Sep 17 00:00:00 2001 From: Steve Kowalik Date: Thu, 12 Dec 2024 23:52:34 +0000 Subject: [PATCH] Accepting request 1230643 from home:bnavigator:branches:devel:languages:python - Add starlette-pr2773-httpx0.28.patch gh#encode/starlette#2773 for httpx 0.28 OBS-URL: https://build.opensuse.org/request/show/1230643 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-starlette?expand=0&rev=60 --- .gitattributes | 23 ++ .gitignore | 1 + _multibuild | 3 + python-starlette.changes | 509 +++++++++++++++++++++++++++++++ python-starlette.spec | 109 +++++++ starlette-0.37.2.tar.gz | 3 + starlette-0.38.2.tar.gz | 3 + starlette-0.38.5.tar.gz | 3 + starlette-0.41.0.tar.gz | 3 + starlette-0.41.3.tar.gz | 3 + starlette-pr2773-httpx0.28.patch | 68 +++++ 11 files changed, 728 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 python-starlette.changes create mode 100644 python-starlette.spec create mode 100644 starlette-0.37.2.tar.gz create mode 100644 starlette-0.38.2.tar.gz create mode 100644 starlette-0.38.5.tar.gz create mode 100644 starlette-0.41.0.tar.gz create mode 100644 starlette-0.41.3.tar.gz create mode 100644 starlette-pr2773-httpx0.28.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/python-starlette.changes b/python-starlette.changes new file mode 100644 index 0000000..994e00a --- /dev/null +++ b/python-starlette.changes @@ -0,0 +1,509 @@ +------------------------------------------------------------------- +Thu Dec 12 16:09:18 UTC 2024 - Ben Greiner + +- Add starlette-pr2773-httpx0.28.patch gh#encode/starlette#2773 + for httpx 0.28 + +------------------------------------------------------------------- +Wed Nov 20 17:28:31 UTC 2024 - Dirk Müller + +- update to 0.41.3: + * Exclude the query parameters from the `scope[raw_path]` on + the `TestClient` #2716. + * Replace `dict` by `Mapping` on `HTTPException.headers` #2749. + * Correct middleware argument passing and improve factory + pattern #2752. +- update to 0.41.2: + * Revert bump on `python-multipart` +- update to 0.41.1: + * Bump minimum `python-multipart` version to 0.0.13 + +------------------------------------------------------------------- +Thu Nov 7 09:20:47 UTC 2024 - Nico Krapp + +- disable PendingDeprecationWarning + +------------------------------------------------------------------- +Wed Oct 16 04:18:23 UTC 2024 - Steve Kowalik + +- Update to 0.41.0: + * Allow to raise HTTPException before websocket.accept(). + * Add max_part_size to MultiPartParser to limit the size of parts in + multipart/form-data requests. (bsc#1231689, CVE-2024-47874) + * Allow use of request.url_for when only "app" scope is available. + * Avoid regex re-compilation in responses.py and schemas.py. + * Improve performance of get_route_path by removing regular expression + usage. + * Consider FileResponse.chunk_size when handling multiple ranges. + * Use token_hex for generating multipart boundary strings. + * Add support for HTTP Range to FileResponse. + * Close unclosed MemoryObjectReceiveStream in TestClient. + +------------------------------------------------------------------- +Sun Sep 8 15:05:40 UTC 2024 - Dirk Müller + +- update to 0.38.5: + * Schedule `BackgroundTasks` from within `BaseHTTPMiddleware` + #2688. +- update to 0.38.4: + * Ensure accurate `root_path` removal in `get_route_path` + function #2600 +- update to 0.38.3: + * Support for Python 3.13 #2662. + * Don't poll for disconnects in `BaseHTTPMiddleware` via + `StreamingResponse` #2620. + +------------------------------------------------------------------- +Tue Aug 13 09:41:53 UTC 2024 - Daniel Garcia + +- Update to 0.38.2: + * Fix routing.get_name() not to assume all routines have __name__ #2648 +- 0.38.1: + * Revert "Add support for ASGI pathsend extension" #2649. +- 0.38.0: + * Allow use of memoryview in StreamingResponse and Response #2576 + and #2577. + * Send 404 instead of 500 when filename requested is too long on + StaticFiles #2583. + * Fail fast on invalid Jinja2Template instantiation parameters #2568. + * Check endpoint handler is async only once #2536. + * Add proper synchronization to WebSocketTestSession #2597. + +------------------------------------------------------------------- +Sat Apr 20 08:10:00 UTC 2024 - Dirk Müller + +- update to 0.37.2: + * Add `bytes` to `_RequestData` type #2510. + * Revert "Turn `scope["client"]` to `None` on `TestClient` + * Remove deprecated `app` argument passed to `httpx.Client` on + the `TestClient` #2526. +- update to 0.37.1: + * Warn instead of raise for missing env file on `Config` #2485. +- update to 0.37.0: + * Support the WebSocket Denial Response ASGI extension #2041. +- update to 0.36.3: + * Create `anyio.Event` on async context #2459. +- update to 0.36.2: + * Upgrade `python-multipart` to `0.0.7` 13e5c26. + * Avoid duplicate charset on `Content-Type` #2443. +- update to 0.36.1: + * Check if "extensions" in scope before checking the extension +- update to 0.36.0: + * Add support for ASGI `pathsend` extension #2435. + * Cancel `WebSocketTestSession` on close #2427. + * Raise `WebSocketDisconnect` when `WebSocket.send()` excepts + `IOError` #2425. + * Raise `FileNotFoundError` when the `env_file` parameter on + `Config` is not valid #2422. + +------------------------------------------------------------------- +Sat Jan 13 20:43:25 UTC 2024 - Ben Greiner + +- Update to 0.35.1 + * Stop using the deprecated "method" parameter in FileResponse + inside of StaticFiles #2406. + * Make typing-extensions optional again #2409. +- Update to 0.35.0 + * Add *args to Middleware and improve its type hints #2381. + * Use Iterable instead Iterator on iterate_in_threadpool #2362. + * Handle root_path to keep compatibility with mounted ASGI + applications and WSGI #2400. + * Turn scope["client"] to None on TestClient #2377. + +------------------------------------------------------------------- +Fri Dec 29 10:02:33 UTC 2023 - Dirk Müller + +- update to 0.34.0: + * Use `ParamSpec` for `run_in_threadpool` #2375. + * Add `UploadFile.__repr__` #2360. + * Merge URLs properly on `TestClient` #2376. + * Take weak ETags in consideration on `StaticFiles` #2334. + * Deprecate `FileResponse(method=...)` parameter #2366. + * Add `middleware` per `Route`/`WebSocketRoute` #2349. + * Add `middleware` per `Router` #2351. + * Do not overwrite `"path"` and `"root_path"` scope keys #2352. + * Set `ensure_ascii=False` on `json.dumps()` for + `WebSocket.send_json()` #2341. +- update to 0.32.0.post1: + * Revert mkdocs-material from 9.1.17 to 9.4.7 #2326. +- update to 0.32.0: + * Send `reason` on `WebSocketDisconnect` #2309. + * Add `domain` parameter to `SessionMiddleware` #2280. + * Inherit from `HTMLResponse` instead of `Response` on + `_TemplateResponse` #2274. + * Restore the `Response.render` type annotation to its + pre-0.31.0 state #2264. + +------------------------------------------------------------------- +Wed Nov 22 17:27:05 UTC 2023 - Daniel Garcia + +- Override pytest configuration to do not handle warnings as errors. + +------------------------------------------------------------------- +Wed Oct 18 07:31:47 UTC 2023 - David Anes + +- Update to 0.31.1: + * Fixes: + - Fix import error when exceptiongroup isn't available #2231. + - Set url_for global for custom Jinja environments #2230. + +- Update to 0.31.0: + * Added + - Officially support Python 3.12 #2214. + - Support AnyIO 4.0 #2211. + - Strictly type annotate Starlette (strict mode on mypy) #2180. + * Fixed + - Don't group duplicated headers on a single string when using the TestClient #2219. + +- Update to 0.30.0 + * Removed + - Drop Python 3.7 support #2178. + +- Update to 0.29.0: + * Added + - Add follow_redirects parameter to TestClient #2207. + - Add __str__ to HTTPException and WebSocketException #2181. + - Warn users when using lifespan together with on_startup/on_shutdown #2193. + - Collect routes from Host to generate the OpenAPI schema #2183. + - Add request argument to TemplateResponse #2191. + * Fixed + - Stop body_stream in case more_body=False on BaseHTTPMiddleware #2194. + +- Update to 0.28.0: + * Changed + - Reuse Request's body buffer for call_next in BaseHTTPMiddleware #1692. + - Move exception handling logic to Route #2026. + * Added + . Add env parameter to Jinja2Templates, and deprecate **env_options #2159. + . Add clear error message when httpx is not installed #2177. + * Fixed + - Allow "name" argument on templates url_for() #2127. + +------------------------------------------------------------------- +Sun Jun 11 13:34:22 UTC 2023 - ecsos + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Wed May 17 07:42:13 UTC 2023 - David Anes + +- Update to 0.27.0: + * Added + - Minify JSON websocket data via send_json #2128 + + * Fixed + - Replace commonprefix by commonpath on StaticFiles 1797de4. + - Convert ImportErrors into ModuleNotFoundError #2135. + - Correct the RuntimeError message content in websockets #2141. + +------------------------------------------------------------------- +Tue Mar 14 09:11:16 UTC 2023 - David Anes + +- Update to 0.26.1: + * Fixed + - Fix typing of Lifespan to allow subclasses of Starlette #2077. + +------------------------------------------------------------------- +Fri Mar 10 11:36:42 UTC 2023 - David Anes + +- Update to 0.26.0.post1: + * Fixed + - Replace reference from Events to Lifespan on the mkdocs.yml #2072. + +- Update to 0.26.0: + * Added + - Support lifespan state #2060, #2065 and #2064. + * Changed + - Change url_for signature to return a URL instance #1385. + * Fixed + - Allow "name" argument on url_for() and url_path_for() #2050. + * Deprecated + - Deprecate on_startup and on_shutdown events #2070. + +------------------------------------------------------------------- +Thu Feb 16 16:22:35 UTC 2023 - David Anes + +- Update to 0.25.0: + * Fixed + - Limit the number of fields and files when parsing + multipart/form-data on the MultipartParser. + +- Fixed upstream: reenable tests for tests for i586 and armv7l. + +------------------------------------------------------------------- +Fri Feb 10 18:28:13 UTC 2023 - David Anes + +- Disable broken tests for i586 and armv7l. + +- Update to 0.24.0 + * Added + - Allow StaticFiles to follow symlinks + - Allow Request.form() as a context manager + - Add size attribute to UploadFile + - Add env_prefix argument to Config + - Add template context processors + - Support str and datetime on expires parameter on the Response.set_cookie method + * Changed + - Lazily build the middleware stack + - Make the file argument required on UploadFile + - Use debug extension instead of custom response template extension + * Fixed + - Fix url parsing of ipv6 urls on URL.replace + +------------------------------------------------------------------- +Wed Jan 4 21:03:11 UTC 2023 - Ben Greiner + +- Clean up test dependencies: fastapi pulls this into Staging + Ring1, we don't want to pull in more than we want. + +------------------------------------------------------------------- +Tue Dec 13 08:27:49 UTC 2022 - David Anes + +- Update to 0.21.3 + * Fixed + - Only stop receiving stream on body_stream if body is empty on i + the BaseHTTPMiddleware. + +- Update to 0.21.0 + * Added + - Add headers parameter to the TestClient. + * Deprecated + - Deprecate Starlette and Router decorators. + * Fixed + - Fix bug on FloatConvertor regex. + +- Fix test package by adding 'exceptiongroup' python module as a + build dependency. + +------------------------------------------------------------------- +Sun Nov 27 22:53:40 UTC 2022 - Michael Ströder + +- Update to 0.22.0 + * Changed + - Bypass GZipMiddleware when response includes Content-Encoding #1901. + * Fixed + - Remove unneeded unquote() from query parameters on the TestClient #1953. + - Make sure MutableHeaders._list is actually a list #1917. + - Import compatibility with the next version of AnyIO #1936. + +------------------------------------------------------------------- +Thu Sep 29 08:19:37 UTC 2022 - Michael Ströder + +- Update to 0.21.0 + * Changed + - Replace requests with httpx in TestClient #1376. + * Added + - Add WebSocketException and support for WebSocket exception handlers #1263. + - Add middleware parameter to Mount class #1649. + - Officially support Python 3.11 1863. + - Implement __repr__ for route classes #1864. + * Fixed + - Fix bug on which BackgroundTasks were cancelled when using BaseHTTPMiddleware and client disconnected #1715. +- setup.py install is no longer supported by upstream => use pip-based installation +- added build dependencies: + * python3-hatchling + * python3-pip + * python3-wheel + +------------------------------------------------------------------- +Thu Aug 11 05:22:41 UTC 2022 - Steve Kowalik + +- Remove unneeded BuildRequires on contextlib2. + +------------------------------------------------------------------- +Fri Aug 5 11:37:43 UTC 2022 - John Vandenberg + +- Add missing runtime dependencies anyio and typing_extensions +- Remove unnecessary build dependencies flake8 and pytest-cov + +------------------------------------------------------------------- +Fri Jul 29 10:21:51 UTC 2022 - Torsten Gruner + +- enable multibuild for test + +------------------------------------------------------------------- +Tue Jul 12 17:55:25 UTC 2022 - Michael Ströder + +- Update to 0.20.4: + - Remove converter from path when generating OpenAPI schema + #1648. + - Revert "Allow StaticFiles to follow symlinks" #1681. + - Fix regression on route paths with colons #1675. + - Allow StaticFiles to follow symlinks #1337. + - Improve detection of async callables #1444. + - Send 400 (Bad Request) when boundary is missing #1617. + - Send 400 (Bad Request) when missing "name" field on + Content-Disposition header #1643. + - Do not send empty data to StreamingResponse on + BaseHTTPMiddleware #1609. + - Add __bool__ dunder for Secret #1625. + - Drop Python 3.6 support #1357 and #1616. + +------------------------------------------------------------------- +Sat May 28 15:16:15 UTC 2022 - Michael Ströder + +- Update to 0.19.1: + * Fixed + - Fix inference of Route.name when created from methods #1553. + - Avoid TypeError on websocket.disconnect when code is None #1574. + * Deprecated + - Deprecate WS_1004_NO_STATUS_RCVD and WS_1005_ABNORMAL_CLOSURE in favor + of WS_1005_NO_STATUS_RCVD and WS_1006_ABNORMAL_CLOSURE, as the previous + constants didn't match the WebSockets specs #1580. + +------------------------------------------------------------------- +Mon Apr 18 15:27:00 UTC 2022 - Michael Ströder + +- Update to 0.19.0: + * Added + - Error handler will always run, even if the error happens + on a background task #761. + - Add headers parameter to HTTPException #1435. + - Internal responses with 405 status code insert an Allow header, + as described by RFC 7231 #1436. + - The content argument in JSONResponse is now required #1431. + - Add custom URL convertor register #1437. + - Add content disposition type parameter to FileResponse #1266. + - Add next query param with original request URL in requires decorator #920. + - Add raw_path to TestClient scope #1445. + - Add union operators to MutableHeaders #1240. + - Display missing route details on debug page #1363. + - Change anyio required version range to >=3.4.0,<5.0 #1421 and #1460. + - Add typing-extensions>=3.10 requirement - used only on lower versions + than Python 3.10 #1475. + * Fixed + - Prevent BaseHTTPMiddleware from hiding errors of StreamingResponse + and mounted applications #1459. + - SessionMiddleware uses an explicit path=..., instead of defaulting + to the ASGI 'root_path' #1512. + - Request.client is now compliant with the ASGI specifications #1462. + - Raise KeyError at early stage for missing boundary #1349. + * Deprecated + - Deprecate WSGIMiddleware in favor of a2wsgi #1504. + - Deprecate run_until_first_complete #1443. + +------------------------------------------------------------------- +Wed Feb 23 01:08:10 UTC 2022 - Steve Kowalik + +- Update to 0.18.0: + * Change default chunk size from 4Kb to 64Kb on FileResponse #1345. + * Add support for functools.partial in WebSocketRoute #1356. + * Add StaticFiles packages with directory #1350. + * Allow environment options in Jinja2Templates #1401. + * Allow HEAD method on HttpEndpoint #1346. + * Accept additional headers on websocket.accept message #1361 and #1422. + * Add reason to WebSocket close ASGI event #1417. + * Add headers attribute to UploadFile #1382. + * Don't omit Content-Length header for Content-Length: 0 cases #1395. + * Don't set headers for responses with 1xx, 204 and 304 status code #1397. + * SessionMiddleware.max_age now accepts None, so cookie can last as long + as the browser session #1387. + * Tweak hashlib.md5() function on FileResponses ETag generation. The + parameter usedforsecurity flag is set to False, if the flag is available + on the system. This fixes an error raised on systems with FIPS + enabled #1366 and #1410. + * Fix path_params type on url_path_for() method i.e. turn str into Any #1341. + * Host now ignores port on routing #1322. +- Set asyncio_mode when running pytest, and stop turning warnings into + errors. + +------------------------------------------------------------------- +Wed Dec 8 15:53:03 UTC 2021 - Torsten Gruner + +- update to version 0.17.1 + * Fix IndexError in authentication requires when wrapped function + arguments are distributed between *args and **kwargs #1335. +- version 17.0 + * Added + - Response.delete_cookie now accepts the same parameters as + Response.set_cookie #1228. + - Update the Jinja2Templates constructor to allow PathLike #1292. + * Fixed + - Fix BadSignature exception handling in SessionMiddleware #1264. + - Change HTTPConnection.__getitem__ return type from str to + typing.Any #1118. + - Change ImmutableMultiDict.getlist return type from typing.List[str] + to typing.List[typing.Any] #1235. + - Handle OSError exceptions on StaticFiles #1220. + - Fix StaticFiles 404.html in HTML mode #1314. + - Prevent anyio.ExceptionGroup in error views under a + BaseHTTPMiddleware #1262. + *Removed + - Remove GraphQL support #1198. +- Remove py39-ignore-loop-deprecation.patch + +------------------------------------------------------------------- +Mon Sep 27 12:44:18 UTC 2021 - Matej Cepl + +- Add py39-ignore-loop-deprecation.patch to fix failing tests + (gh#encode/starlette#1293). + +------------------------------------------------------------------- +Thu Jul 22 09:53:25 UTC 2021 - Matej Cepl + +- Update to 0.16.0: + - Added Encode funding option #1219 + - Starlette now supports Trio as an async runtime via AnyIO + - #1157. + - TestClient.websocket_connect() now must be used as a context + manager. + - Initial support for Python 3.10 - #1201. + - The compression level used in GZipMiddleware is now + adjustable - #1128. + - starlette.websockets.WebSocket instances are now hashable and + compare by identity #1039 + - A number of fixes related to running task groups in lifespan + #1213, #1227 + - Several fixes to CORSMiddleware. See #1111, #1112, #1113, + #1199. + - Improved exception messages in the case of duplicated path + parameter names - #1177. + - RedirectResponse now uses quote instead of quote_plus + encoding for the Location header to better match the + behaviour in other frameworks such as Django - #1164. + - Exception causes are now preserved in more cases - #1158. + - Session cookies now use the ASGI root path in the case of + mounted applications - #1147. + - Fixed a cache invalidation bug when static files were deleted + in certain circumstances - #1023. + - Improved memory usage of BaseHTTPMiddleware when handling + large responses - #1012 fixed via #1157 + - The method starlette.templates.Jinja2Templates.get_env was + removed #1218 + - The ClassVar starlette.testclient.TestClient.async_backend + was removed, the backend is now configured using constructor + kwargs #1211 + - Passing an Async Generator Function or a Generator Function + to starlette.router.Router(lifespan_context=) is deprecated. + You should wrap your lifespan in + @contextlib.asynccontextmanager. #1227 #1110 + - Built-in GraphQL support via the GraphQLApp class has been + deprecated and will be removed in a future release. Please + see #619. GraphQL is not supported on Python 3.10. + - The executor parameter to GraphQLApp was removed. Use + executor_class instead. + - The workers parameter to WSGIMiddleware was removed. This + hasn't had any effect since Starlette v0.6.3. + +------------------------------------------------------------------- +Tue Apr 13 19:20:13 UTC 2021 - simmphonie@opensuse.org + +- add build requirements for %pytest +- remove test for deprecated built-in GraphQL support +- remove unrecognized arguments in setup.cfg + +------------------------------------------------------------------- +Wed Feb 17 18:40:47 UTC 2021 - Michael Ströder + +- update to 0.14.2 + +------------------------------------------------------------------- +Wed Dec 2 14:49:51 UTC 2020 - Michael Ströder + +- update to 0.14.1 + +------------------------------------------------------------------- +Sat Sep 5 11:33:42 UTC 2020 - Michael Ströder + +- initial packaging of 0.13.8 + diff --git a/python-starlette.spec b/python-starlette.spec new file mode 100644 index 0000000..7790796 --- /dev/null +++ b/python-starlette.spec @@ -0,0 +1,109 @@ +# +# spec file for package python-starlette +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif + +%{?sle15_python_module_pythons} +Name: python-starlette%{psuffix} +Version: 0.41.3 +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 hatchling} +BuildRequires: %{python_module pip} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-anyio >= 3.4.0 +Requires: (python-typing_extensions >= 3.10.0 if python-base < 3.10) +BuildArch: noarch +%if %{with test} +BuildRequires: %{python_module anyio >= 3.4.0} +# 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} +# /SECTION +# SECTION test +BuildRequires: %{python_module exceptiongroup} +BuildRequires: %{python_module asyncio} +BuildRequires: %{python_module pytest-asyncio} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module trio} +# testing requires it for all flavors +BuildRequires: %{python_module typing_extensions >= 4.10.0} +BuildRequires: %{python_module importlib-metadata >= 7.0.1} +# /SECITON +%endif +%python_subpackages + +%description +Starlette is a lightweight ASGI framework/toolkit, which is ideal for +building high performance asyncio services. + +%prep +%autosetup -p1 -n starlette-%{version} + +%build +%if ! %{with test} +%pyproject_wheel +%endif + +%install +%if ! %{with test} +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif + +%check +%if %{with test} +# The following tests don't work in some archs because time_t cannot +# hold the values the test expect, as they go beyond the maximum +# value in i586 and armv7l. As we are using Buildarch: noarch, we +# cannot just use ifarch conditionals here... +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" +%pytest -W ignore::PendingDeprecationWarning --asyncio-mode=strict -k "not ($ignored_tests)" + +%endif + +%if ! %{with test} +%files %{python_files} +%doc README.md +%license LICENSE.md +%{python_sitelib}/starlette +%{python_sitelib}/starlette-%{version}.dist-info +%endif + +%changelog diff --git a/starlette-0.37.2.tar.gz b/starlette-0.37.2.tar.gz new file mode 100644 index 0000000..960f707 --- /dev/null +++ b/starlette-0.37.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1bbb8b114ef94cedef5c2a320ff395dd2c6ab51e86ec605aec00976bd9314f4e +size 2846433 diff --git a/starlette-0.38.2.tar.gz b/starlette-0.38.2.tar.gz new file mode 100644 index 0000000..1efe51a --- /dev/null +++ b/starlette-0.38.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28dad5de4c9b3b9f32a89f4629c827b3c42c303de58463c719ab2909f3d2542c +size 2847558 diff --git a/starlette-0.38.5.tar.gz b/starlette-0.38.5.tar.gz new file mode 100644 index 0000000..481c335 --- /dev/null +++ b/starlette-0.38.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ff52aa20a63821de16dd72f698df8b106789e427ceece9b526204fcfc9b6fe5 +size 2569392 diff --git a/starlette-0.41.0.tar.gz b/starlette-0.41.0.tar.gz new file mode 100644 index 0000000..83d60ac --- /dev/null +++ b/starlette-0.41.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0583161b9cf3de9dc7af7ebd3ae7c6a95e78a7a741558611cd5d8e640c06232 +size 2573744 diff --git a/starlette-0.41.3.tar.gz b/starlette-0.41.3.tar.gz new file mode 100644 index 0000000..7243fbb --- /dev/null +++ b/starlette-0.41.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a00307be5dfaf5acb971e1750096178782f234c4834b39e7d8ca097877b8638 +size 2574193 diff --git a/starlette-pr2773-httpx0.28.patch b/starlette-pr2773-httpx0.28.patch new file mode 100644 index 0000000..0bb8a67 --- /dev/null +++ b/starlette-pr2773-httpx0.28.patch @@ -0,0 +1,68 @@ +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"}