Accepting request 939980 from home:bnavigator:branches:devel:languages:python
update (for python310) OBS-URL: https://build.opensuse.org/request/show/939980 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=73
This commit is contained in:
parent
18ac096873
commit
9aed91572f
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5d84ecc73141d0a0d61ece0742bb7ff5751b0657dab8405f899d3ceb104cc7de
|
||||
size 1114533
|
3
aiohttp-3.8.1.tar.gz
Normal file
3
aiohttp-3.8.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fc5471e1a54de15ef71c1bc6ebe80d4dc681ea600e68bfd1cbce40427f0b7578
|
||||
size 7324180
|
@ -1,93 +0,0 @@
|
||||
From d0453ed56820e32802be743bf7a7b7027f9c9589 Mon Sep 17 00:00:00 2001
|
||||
From: Sam Bull <aa6bs0@sambull.org>
|
||||
Date: Sat, 14 Nov 2020 15:24:43 +0000
|
||||
Subject: [PATCH 1/7] Backport fix for setting cookies
|
||||
|
||||
---
|
||||
CHANGES/5233.bugfix | 1 +
|
||||
aiohttp/web_protocol.py | 21 ++++++++++-----------
|
||||
tests/test_web_exceptions.py | 28 ++++++++++++++++++++++++++++
|
||||
3 files changed, 39 insertions(+), 11 deletions(-)
|
||||
|
||||
--- /dev/null
|
||||
+++ b/CHANGES/5233.bugfix
|
||||
@@ -0,0 +1 @@
|
||||
+Fix cookies disappearing from HTTPExceptions.
|
||||
--- a/aiohttp/web_protocol.py
|
||||
+++ b/aiohttp/web_protocol.py
|
||||
@@ -423,9 +423,7 @@ class RequestHandler(BaseProtocol):
|
||||
finally:
|
||||
self._current_request = None
|
||||
except HTTPException as exc:
|
||||
- resp = Response(
|
||||
- status=exc.status, reason=exc.reason, text=exc.text, headers=exc.headers
|
||||
- )
|
||||
+ resp = exc
|
||||
reset = await self.finish_response(request, resp, start_time)
|
||||
except asyncio.CancelledError:
|
||||
raise
|
||||
@@ -437,6 +435,15 @@ class RequestHandler(BaseProtocol):
|
||||
resp = self.handle_error(request, 500, exc)
|
||||
reset = await self.finish_response(request, resp, start_time)
|
||||
else:
|
||||
+ # Deprecation warning (See #2415)
|
||||
+ if getattr(resp, "__http_exception__", False):
|
||||
+ warnings.warn(
|
||||
+ "returning HTTPException object is deprecated "
|
||||
+ "(#2415) and will be removed, "
|
||||
+ "please raise the exception instead",
|
||||
+ DeprecationWarning,
|
||||
+ )
|
||||
+
|
||||
reset = await self.finish_response(request, resp, start_time)
|
||||
|
||||
return resp, reset
|
||||
@@ -486,14 +493,6 @@ class RequestHandler(BaseProtocol):
|
||||
except (asyncio.CancelledError, ConnectionError):
|
||||
self.log_debug("Ignored premature client disconnection")
|
||||
break
|
||||
- # Deprecation warning (See #2415)
|
||||
- if getattr(resp, "__http_exception__", False):
|
||||
- warnings.warn(
|
||||
- "returning HTTPException object is deprecated "
|
||||
- "(#2415) and will be removed, "
|
||||
- "please raise the exception instead",
|
||||
- DeprecationWarning,
|
||||
- )
|
||||
|
||||
# Drop the processed task from asyncio.Task.all_tasks() early
|
||||
del task
|
||||
--- a/tests/test_web_exceptions.py
|
||||
+++ b/tests/test_web_exceptions.py
|
||||
@@ -203,3 +203,31 @@ def test_HTTPException_retains_cause() -
|
||||
tb = "".join(format_exception(ei.type, ei.value, ei.tb))
|
||||
assert "CustomException" in tb
|
||||
assert "direct cause" in tb
|
||||
+
|
||||
+
|
||||
+async def test_HTTPException_retains_cookie(aiohttp_client):
|
||||
+ @web.middleware
|
||||
+ async def middleware(request, handler):
|
||||
+ try:
|
||||
+ return await handler(request)
|
||||
+ except web.HTTPException as exc:
|
||||
+ exc.set_cookie("foo", request["foo"])
|
||||
+ raise exc
|
||||
+
|
||||
+ async def save(request):
|
||||
+ request["foo"] = "works"
|
||||
+ raise web.HTTPFound("/show")
|
||||
+
|
||||
+ async def show(request):
|
||||
+ return web.Response(text=request.cookies["foo"])
|
||||
+
|
||||
+ app = web.Application(middlewares=[middleware])
|
||||
+ app.router.add_route("GET", "/save", save)
|
||||
+ app.router.add_route("GET", "/show", show)
|
||||
+ client = await aiohttp_client(app)
|
||||
+
|
||||
+ resp = await client.get("/save")
|
||||
+ assert resp.status == 200
|
||||
+ assert str(resp.url)[-5:] == "/show"
|
||||
+ text = await resp.text()
|
||||
+ assert text == "works"
|
@ -1,3 +1,192 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 11 19:18:47 UTC 2021 - Ben Greiner <code@bnavigator.de>
|
||||
|
||||
- Update to version 3.8.1
|
||||
* Bugfixes
|
||||
* Fix the error in handling the return value of getaddrinfo.
|
||||
getaddrinfo will return an (int, bytes) tuple, if CPython could
|
||||
not handle the address family. It will cause a index out of
|
||||
range error in aiohttp. For example, if user compile CPython
|
||||
with --disable-ipv6 option but his system enable the ipv6.
|
||||
#5901
|
||||
* Do not install "examples" as a top-level package. #6189
|
||||
* Restored ability to connect IPv6-only host. #6195
|
||||
* Remove Signal from __all__, replace aiohttp.Signal with
|
||||
aiosignal.Signal in docs #6201
|
||||
* Made chunked encoding HTTP header check stricter. #6305
|
||||
* Improved Documentation
|
||||
* update quick starter demo codes. #6240
|
||||
* Added an explanation of how tiny timeouts affect performance to
|
||||
the client reference document. #6274
|
||||
* Add flake8-docstrings to flake8 configuration, enable subset of
|
||||
checks. #6276
|
||||
* Added information on running complex applications with
|
||||
additional tasks/processes -- :user:`Dreamsorcerer`. #6278
|
||||
- Release 3.8.0 (2021-10-31)
|
||||
* Features
|
||||
* Added a GunicornWebWorker feature for extending the aiohttp
|
||||
server configuration by allowing the 'wsgi' coroutine to return
|
||||
web.AppRunner object. #2988
|
||||
* Switch from http-parser to llhttp #3561
|
||||
* Use Brotli instead of brotlipy #3803
|
||||
* Disable implicit switch-back to pure python mode. The build
|
||||
fails loudly if aiohttp cannot be compiled with C Accelerators.
|
||||
Use AIOHTTP_NO_EXTENSIONS=1 to explicitly disable C Extensions
|
||||
complication and switch to Pure-Python mode. Note that
|
||||
Pure-Python mode is significantly slower than compiled one.
|
||||
#3828
|
||||
* Make access log use local time with timezone #3853
|
||||
* Implemented readuntil in StreamResponse #4054
|
||||
* FileResponse now supports ETag. #4594
|
||||
* Add a request handler type alias aiohttp.typedefs.Handler.
|
||||
#4686
|
||||
* AioHTTPTestCase is more async friendly now.
|
||||
* For people who use unittest and are used to use
|
||||
:py:exc:`~unittest.TestCase` it will be easier to write new
|
||||
test cases like the sync version of the
|
||||
:py:exc:`~unittest.TestCase` class, without using the decorator
|
||||
@unittest_run_loop, just async def test_*. The only difference
|
||||
is that for the people using python3.7 and below a new
|
||||
dependency is needed, it is asynctestcase. #4700
|
||||
* Add validation of HTTP header keys and values to prevent header
|
||||
injection. #4818
|
||||
* Add predicate to AbstractCookieJar.clear. Add
|
||||
AbstractCookieJar.clear_domain to clean all domain and
|
||||
subdomains cookies only. #4942
|
||||
* Add keepalive_timeout parameter to web.run_app. #5094
|
||||
* Tracing for client sent headers #5105
|
||||
* Make type hints for http parser stricter #5267
|
||||
* Add final declarations for constants. #5275
|
||||
* Switch to external frozenlist and aiosignal libraries. #5293
|
||||
* Don't send secure cookies by insecure transports.
|
||||
* By default, the transport is secure if https or wss scheme is
|
||||
used. Use CookieJar(treat_as_secure_origin="http://127.0.0.1")
|
||||
to override the default security checker. #5571
|
||||
* Always create a new event loop in aiohttp.web.run_app(). This
|
||||
adds better compatibility with asyncio.run() or if trying to
|
||||
run multiple apps in sequence. #5572
|
||||
* Add aiohttp.pytest_plugin.AiohttpClient for static typing of
|
||||
pytest plugin. #5585
|
||||
* Added a socket_factory argument to BaseTestServer. #5844
|
||||
* Add compression strategy parameter to enable_compression
|
||||
method. #5909
|
||||
* Added support for Python 3.10 to Github Actions CI/CD workflows
|
||||
and fix the related deprecation warnings -- :user:`Hanaasagi`.
|
||||
#5927
|
||||
* Switched chardet to charset-normalizer for guessing the HTTP
|
||||
payload body encoding -- :user:`Ousret`. #5930
|
||||
* Added optional auto_decompress argument for HttpRequestParser
|
||||
#5957
|
||||
* Added support for HTTPS proxies to the extent CPython's
|
||||
:py:mod:`asyncio` supports it -- by :user:`bmbouter`,
|
||||
:user:`jborean93` and :user:`webknjaz`. #5992
|
||||
* Added base_url parameter to the initializer of
|
||||
:class:`~aiohttp.ClientSession`. #6013
|
||||
* Add Trove classifier and create binary wheels for 3.10. --
|
||||
:user:`hugovk`. #6079
|
||||
* Started shipping platform-specific wheels with the musl tag
|
||||
targeting typical Alpine Linux runtimes — :user:`asvetlov`.
|
||||
#6139
|
||||
* Started shipping platform-specific arm64 wheels for Apple
|
||||
Silicon — :user:`asvetlov`. #6139
|
||||
* Bugfixes
|
||||
* Modify _drain_helper() to handle concurrent await
|
||||
resp.write(...) or ws.send_json(...) calls without
|
||||
race-condition. #2934
|
||||
* Started using MultiLoopChildWatcher when it's available under
|
||||
POSIX while setting up the test I/O loop. #3450
|
||||
* Only encode content-disposition filename parameter using
|
||||
percent-encoding. Other parameters are encoded to quoted-string
|
||||
or RFC2231 extended parameter value. #4012
|
||||
* Fixed HTTP client requests to honor no_proxy environment
|
||||
variables. #4431
|
||||
* Fix supporting WebSockets proxies configured via environment
|
||||
variables. #4648
|
||||
* Change return type on URLDispatcher to UrlMappingMatchInfo to
|
||||
improve type annotations. #4748
|
||||
* Ensure a cleanup context is cleaned up even when an exception
|
||||
occurs during startup. #4799
|
||||
* Added a new exception type for Unix socket client errors which
|
||||
provides a more useful error message. #4984
|
||||
* Remove Transfer-Encoding and Content-Type headers for 204 in
|
||||
StreamResponse #5106
|
||||
* Only depend on typing_extensions for Python <3.8 #5107
|
||||
* Add ABNORMAL_CLOSURE and BAD_GATEWAY to WSCloseCode #5192
|
||||
* Fix cookies disappearing from HTTPExceptions. #5233
|
||||
* StaticResource prefixes no longer match URLs with a non-folder
|
||||
prefix. For example routes.static('/foo', '/foo') no longer
|
||||
matches the URL /foobar. Previously, this would attempt to load
|
||||
the file /foo/ar. #5250
|
||||
* Acquire the connection before running traces to prevent race
|
||||
condition. #5259
|
||||
* Add missing slots to `_RequestContextManager and
|
||||
_WSRequestContextManager #5329
|
||||
* Ensure sending a zero byte file does not throw an exception
|
||||
(round 2) #5380
|
||||
* Set "text/plain" when data is an empty string in client
|
||||
requests. #5392
|
||||
* Stop automatically releasing the ClientResponse object on calls
|
||||
to the ok property for the failed requests. #5403
|
||||
* Include query parameters from params keyword argument in
|
||||
tracing URL. #5432
|
||||
* Fix annotations #5466
|
||||
* Fixed the multipart POST requests processing to always release
|
||||
file descriptors for the tempfile.Temporaryfile-created
|
||||
_io.BufferedRandom instances of files sent within multipart
|
||||
request bodies via HTTP POST requests -- by :user:`webknjaz`.
|
||||
#5494
|
||||
* Fix 0 being incorrectly treated as an immediate timeout. #5527
|
||||
* Fixes failing tests when an environment variable <scheme>_proxy
|
||||
is set. #5554
|
||||
* Replace deprecated app handler design in
|
||||
tests/autobahn/server.py with call to web.run_app; replace
|
||||
deprecated aiohttp.ws_connect calls in tests/autobahn/client.py
|
||||
with aiohttp.ClienSession.ws_connect. #5606
|
||||
* Fixed test for HTTPUnauthorized that access the text argument.
|
||||
This is not used in any part of the code, so it's removed now.
|
||||
#5657
|
||||
* Remove incorrect default from docs #5727
|
||||
* Remove external test dependency to http://httpbin.org #5840
|
||||
* Don't cancel current task when entering a cancelled timer.
|
||||
#5853
|
||||
* Added params keyword argument to ClientSession.ws_connect. --
|
||||
:user:`hoh`. #5868
|
||||
* Uses :py:class:`~asyncio.ThreadedChildWatcher` under POSIX to
|
||||
allow setting up test loop in non-main thread. #5877
|
||||
* Fix the error in handling the return value of getaddrinfo.
|
||||
getaddrinfo will return an (int, bytes) tuple, if CPython could
|
||||
not handle the address family. It will cause a index out of
|
||||
range error in aiohttp. For example, if user compile CPython
|
||||
with --disable-ipv6 option but his system enable the ipv6.
|
||||
#5901
|
||||
* Removed the deprecated loop argument from the
|
||||
asyncio.sleep/gather calls #5905
|
||||
* Return None from request.if_modified_since,
|
||||
request.if_unmodified_since, request.if_range and
|
||||
response.last_modified when corresponding http date headers are
|
||||
invalid. #5925
|
||||
* Fix resetting SIGCHLD signals in Gunicorn aiohttp Worker to fix
|
||||
subprocesses that capture output having an incorrect
|
||||
returncode. #6130
|
||||
* Raise 400: Content-Length can't be present with
|
||||
Transfer-Encoding if both Content-Length and Transfer-Encoding
|
||||
are sent by peer by both C and Python implementations #6182
|
||||
* Improved Documentation
|
||||
* Refactored OpenAPI/Swagger aiohttp addons, added aio-openapi
|
||||
#5326
|
||||
* Fixed docs on request cookies type, so it matches what is
|
||||
actually used in the code (a read-only dictionary-like object).
|
||||
#5725
|
||||
* Documented that the HTTP client Authorization header is removed
|
||||
on redirects to a different host or protocol. #5850
|
||||
- Drop patches
|
||||
* backport_fix_for_setting_cookies.patch
|
||||
* remove_deprecated_loop_argument.patch
|
||||
* stdlib-typing_extensions.patch
|
||||
* unbundle-http-parser.patch -- replaced by llhttp, nothing else
|
||||
than the bundled llhttp available.
|
||||
- Disable building the docs (no sphinxcontrib-towncrier)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 24 00:38:26 UTC 2021 - Steve Kowalik <steven.kowalik@suse.com>
|
||||
|
||||
|
@ -18,66 +18,62 @@
|
||||
|
||||
%{?!python_module:%define python_module() python3-%{**}}
|
||||
%define skip_python2 1
|
||||
# requires some unavailable modules
|
||||
%bcond_with docs
|
||||
Name: python-aiohttp
|
||||
Version: 3.7.4
|
||||
Version: 3.8.1
|
||||
Release: 0
|
||||
Summary: Asynchronous HTTP client/server framework
|
||||
License: Apache-2.0
|
||||
URL: https://github.com/aio-libs/aiohttp
|
||||
Source: https://files.pythonhosted.org/packages/source/a/aiohttp/aiohttp-%{version}.tar.gz
|
||||
Patch0: unbundle-http-parser.patch
|
||||
# PATCH-FIX-UPSTREAM stdlib-typing_extensions.patch gh#aio-libs/aiohttp#5374 mcepl@suse.com
|
||||
# Fix typing_extensions imports.
|
||||
Patch1: stdlib-typing_extensions.patch
|
||||
# PATCH-FIX-UPSTREAM remove_deprecated_loop_argument.patch gh#aio-libs/aiohttp#5991 mcepl@suse.com
|
||||
# remove deprecated loop argument
|
||||
Patch3: remove_deprecated_loop_argument.patch
|
||||
# PATCH-FIX-UPSTREAM backport_fix_for_setting_cookies.patch gh#aio-libs/aiohttp#5233 mcepl@suse.com
|
||||
# backport of fixes from 3.8 branch
|
||||
Patch4: backport_fix_for_setting_cookies.patch
|
||||
BuildRequires: %{python_module Cython}
|
||||
BuildRequires: %{python_module async_timeout >= 3.0}
|
||||
BuildRequires: %{python_module aiosignal >= 1.1.2}
|
||||
BuildRequires: %{python_module async_timeout >= 4.0}
|
||||
BuildRequires: %{python_module asynctest = 0.13.0 if %python-base < 3.8}
|
||||
BuildRequires: %{python_module attrs >= 17.3.0}
|
||||
BuildRequires: %{python_module chardet >= 2.0}
|
||||
BuildRequires: %{python_module devel >= 3.5.3}
|
||||
BuildRequires: %{python_module freezegun}
|
||||
BuildRequires: %{python_module idna_ssl >= 1.0}
|
||||
BuildRequires: %{python_module charset-normalizer >= 2.0}
|
||||
BuildRequires: %{python_module devel >= 3.6}
|
||||
BuildRequires: %{python_module frozenlist >= 1.1.1}
|
||||
BuildRequires: %{python_module idna_ssl >= 1.0 if %python-base < 3.7}
|
||||
BuildRequires: %{python_module multidict >= 4.5}
|
||||
BuildRequires: %{python_module setuptools}
|
||||
BuildRequires: %{python_module typing_extensions >= 3.6.5 if %python-base < 3.8}
|
||||
BuildRequires: %{python_module typing_extensions >= 3.7.4 if %python-base < 3.8}
|
||||
BuildRequires: %{python_module yarl >= 1.0}
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: http-parser-devel
|
||||
BuildRequires: python-rpm-macros
|
||||
Requires: python >= 3.6
|
||||
Requires: python-async_timeout >= 3.0
|
||||
Requires: python-aiosignal >= 1.1.2
|
||||
Requires: python-async_timeout >= 4.0
|
||||
Requires: python-attrs >= 17.3.0
|
||||
Requires: python-chardet >= 2.0
|
||||
Requires: python-gunicorn
|
||||
Requires: python-charset-normalizer >= 2.0
|
||||
Requires: python-frozenlist >= 1.1.1
|
||||
Requires: python-multidict >= 4.5
|
||||
Requires: python-yarl >= 1.0
|
||||
Requires: (python3-typing_extensions >= 3.6.5 if python3-base < 3.8)
|
||||
Requires: (python-asynctest = 0.13.0 if python-base < 3.8)
|
||||
Requires: (python-idna_ssl >= 1.0 if python-base < 3.7)
|
||||
Requires: (python-typing_extensions >= 3.7.4 if python-base < 3.8)
|
||||
Recommends: python-aiodns
|
||||
Recommends: python-brotlipy
|
||||
Recommends: python-cChardet
|
||||
Suggests: %{name}-doc
|
||||
%if 0%{?suse_version} < 1550 || "%{python_flavor}" == "python36"
|
||||
Requires: python-idna_ssl >= 1.0
|
||||
%endif
|
||||
# SECTION test requirements
|
||||
BuildRequires: %{python_module aiodns}
|
||||
BuildRequires: %{python_module async_generator}
|
||||
BuildRequires: %{python_module brotlipy}
|
||||
BuildRequires: %{python_module freezegun}
|
||||
BuildRequires: %{python_module gunicorn}
|
||||
BuildRequires: %{python_module pluggy}
|
||||
BuildRequires: %{python_module proxy.py}
|
||||
BuildRequires: %{python_module pytest-mock}
|
||||
BuildRequires: %{python_module pytest-timeout}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module re-assert}
|
||||
BuildRequires: %{python_module trustme}
|
||||
|
||||
# /SECTION
|
||||
# SECTION docs
|
||||
%if %{with docs}
|
||||
BuildRequires: %{python_module MarkupSafe}
|
||||
BuildRequires: python3-Pygments >= 2.1
|
||||
BuildRequires: python3-Sphinx
|
||||
@ -85,6 +81,8 @@ BuildRequires: python3-aiohttp-theme
|
||||
BuildRequires: python3-sphinxcontrib-asyncio
|
||||
BuildRequires: python3-sphinxcontrib-blockdiag
|
||||
BuildRequires: python3-sphinxcontrib-newsfeed
|
||||
BuildRequires: python3-sphinxcontrib-towncrier
|
||||
%endif
|
||||
# /SECTION
|
||||
%python_subpackages
|
||||
|
||||
@ -104,20 +102,18 @@ HTML documentation on the API and examples for %{name}.
|
||||
%prep
|
||||
%autosetup -p1 -n aiohttp-%{version}
|
||||
|
||||
# Prevent building with vendor version
|
||||
rm vendor/http-parser/*.c
|
||||
|
||||
# Allow use with chardet v4
|
||||
# https://github.com/aio-libs/aiohttp/pull/5333
|
||||
sed -i 's/chardet>=2.0,<4.0/chardet>=2.0/' setup.py
|
||||
# don't check coverage
|
||||
sed -i '/--cov/d' setup.cfg
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
%python_build
|
||||
%if %{with docs}
|
||||
pushd docs
|
||||
%make_build html
|
||||
rm _build/html/.buildinfo
|
||||
popd
|
||||
%endif
|
||||
|
||||
%install
|
||||
%python_install
|
||||
@ -127,16 +123,16 @@ rm -r %{buildroot}%{$python_sitearch}/aiohttp/.hash
|
||||
}
|
||||
|
||||
%check
|
||||
# ignore setup.cfg
|
||||
touch pytest.ini
|
||||
%define skiptest_allflavors test_aiohttp_request_coroutine or test_mark_formdata_as_processed or test_aiohttp_plugin_async
|
||||
# we need it to be defined for all flavors for expansion inside pytest_arch to work. %%{?...} would expand too early.
|
||||
%{lua: for p in string.gmatch(rpm.expand("%pythons"), "%S+") do rpm.define("skiptest_" .. p .. "_only %{nil}") end}
|
||||
donttest="test_aiohttp_request_coroutine or test_mark_formdata_as_processed or test_aiohttp_plugin_async"
|
||||
python36_donttest=" or test_read_boundary_with_incomplete_chunk"
|
||||
# no name resolution
|
||||
donttest+=" or test_client_session_timeout_zero or test_requote_redirect_url_default"
|
||||
# flaky
|
||||
donttest+=" or test_https_proxy_unsupported_tls_in_tls"
|
||||
%if 0%{?python3_version_nodots} == 36
|
||||
%define skiptest_python3_only or test_read_boundary_with_incomplete_chunk
|
||||
donttest+="$python36_donttest"
|
||||
%endif
|
||||
%define skiptest_python36_only or test_read_boundary_with_incomplete_chunk
|
||||
%pytest_arch --ignore ./aiohttp -rs -k 'not (%{skiptest_allflavors} %{skiptest_$python_only})'
|
||||
%pytest_arch --ignore ./aiohttp -rsEf -k "not ($donttest ${$python_donttest})"
|
||||
|
||||
%files %{python_files}
|
||||
%license LICENSE.txt
|
||||
@ -144,7 +140,9 @@ touch pytest.ini
|
||||
%{python_sitearch}/aiohttp
|
||||
%{python_sitearch}/aiohttp-%{version}*-info
|
||||
|
||||
%if %{with docs}
|
||||
%files -n %{name}-doc
|
||||
%doc docs/_build/html
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
|
@ -1,59 +0,0 @@
|
||||
From dd3a89130b5769218550159ebbab9e28d8b974a3 Mon Sep 17 00:00:00 2001
|
||||
From: Hanaasagi <ambiguous404@gmail.com>
|
||||
Date: Tue, 3 Aug 2021 11:53:45 +0000
|
||||
Subject: [PATCH] fix: remove deprecated loop argument for asnycio.sleep/gather
|
||||
calls
|
||||
|
||||
---
|
||||
CHANGES/5905.bugfix | 1 +
|
||||
aiohttp/web.py | 4 +---
|
||||
tests/test_locks.py | 6 +++---
|
||||
3 files changed, 5 insertions(+), 6 deletions(-)
|
||||
create mode 100644 CHANGES/5905.bugfix
|
||||
|
||||
--- /dev/null
|
||||
+++ b/CHANGES/5905.bugfix
|
||||
@@ -0,0 +1 @@
|
||||
+remove deprecated loop argument for asnycio.sleep/gather calls
|
||||
--- a/aiohttp/web.py
|
||||
+++ b/aiohttp/web.py
|
||||
@@ -440,9 +440,7 @@ def _cancel_tasks(
|
||||
for task in to_cancel:
|
||||
task.cancel()
|
||||
|
||||
- loop.run_until_complete(
|
||||
- asyncio.gather(*to_cancel, loop=loop, return_exceptions=True)
|
||||
- )
|
||||
+ loop.run_until_complete(asyncio.gather(*to_cancel, return_exceptions=True))
|
||||
|
||||
for task in to_cancel:
|
||||
if task.cancelled():
|
||||
--- a/tests/test_locks.py
|
||||
+++ b/tests/test_locks.py
|
||||
@@ -18,7 +18,7 @@ class TestEventResultOrError:
|
||||
return 1
|
||||
|
||||
t = loop.create_task(c())
|
||||
- await asyncio.sleep(0, loop=loop)
|
||||
+ await asyncio.sleep(0)
|
||||
e = Exception()
|
||||
ev.set(exc=e)
|
||||
assert (await t) == e
|
||||
@@ -31,7 +31,7 @@ class TestEventResultOrError:
|
||||
return 1
|
||||
|
||||
t = loop.create_task(c())
|
||||
- await asyncio.sleep(0, loop=loop)
|
||||
+ await asyncio.sleep(0)
|
||||
ev.set()
|
||||
assert (await t) == 1
|
||||
|
||||
@@ -43,7 +43,7 @@ class TestEventResultOrError:
|
||||
|
||||
t1 = loop.create_task(c())
|
||||
t2 = loop.create_task(c())
|
||||
- await asyncio.sleep(0, loop=loop)
|
||||
+ await asyncio.sleep(0)
|
||||
ev.cancel()
|
||||
ev.set()
|
||||
|
@ -1,60 +0,0 @@
|
||||
---
|
||||
aiohttp/helpers.py | 5 ++++-
|
||||
aiohttp/tracing.py | 5 ++++-
|
||||
aiohttp/web_urldispatcher.py | 5 ++++-
|
||||
setup.py | 2 +-
|
||||
4 files changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/aiohttp/helpers.py
|
||||
+++ b/aiohttp/helpers.py
|
||||
@@ -45,7 +45,10 @@ from urllib.request import getproxies
|
||||
import async_timeout
|
||||
import attr
|
||||
from multidict import MultiDict, MultiDictProxy
|
||||
-from typing_extensions import Protocol
|
||||
+try:
|
||||
+ from typing import Protocol
|
||||
+except (ImportError, ModuleNotFoundError):
|
||||
+ from typing_extensions import Protocol
|
||||
from yarl import URL
|
||||
|
||||
from . import hdrs
|
||||
--- a/aiohttp/tracing.py
|
||||
+++ b/aiohttp/tracing.py
|
||||
@@ -9,7 +9,10 @@ from .client_reqrep import ClientRespons
|
||||
from .signals import Signal
|
||||
|
||||
if TYPE_CHECKING: # pragma: no cover
|
||||
- from typing_extensions import Protocol
|
||||
+ try:
|
||||
+ from typing import Protocol
|
||||
+ except (ImportError, ModuleNotFoundError):
|
||||
+ from typing_extensions import Protocol
|
||||
|
||||
from .client import ClientSession
|
||||
|
||||
--- a/aiohttp/web_urldispatcher.py
|
||||
+++ b/aiohttp/web_urldispatcher.py
|
||||
@@ -33,7 +33,10 @@ from typing import (
|
||||
cast,
|
||||
)
|
||||
|
||||
-from typing_extensions import TypedDict
|
||||
+try:
|
||||
+ from typing import TypedDict
|
||||
+except (ImportError, ModuleNotFoundError):
|
||||
+ from typing_extensions import TypedDict
|
||||
from yarl import URL, __version__ as yarl_version # type: ignore
|
||||
|
||||
from . import hdrs
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -70,7 +70,7 @@ install_requires = [
|
||||
"async_timeout>=3.0,<4.0",
|
||||
"yarl>=1.0,<2.0",
|
||||
'idna-ssl>=1.0; python_version<"3.7"',
|
||||
- "typing_extensions>=3.6.5",
|
||||
+ 'typing_extensions>=3.7.4; python_version<"3.8"',
|
||||
]
|
||||
|
||||
|
@ -1,25 +0,0 @@
|
||||
Index: aiohttp-3.7.2/aiohttp/_cparser.pxd
|
||||
===================================================================
|
||||
--- aiohttp-3.7.2.orig/aiohttp/_cparser.pxd
|
||||
+++ aiohttp-3.7.2/aiohttp/_cparser.pxd
|
||||
@@ -1,7 +1,7 @@
|
||||
from libc.stdint cimport uint16_t, uint32_t, uint64_t
|
||||
|
||||
|
||||
-cdef extern from "../vendor/http-parser/http_parser.h":
|
||||
+cdef extern from "http_parser.h":
|
||||
ctypedef int (*http_data_cb) (http_parser*,
|
||||
const char *at,
|
||||
size_t length) except -1
|
||||
Index: aiohttp-3.7.2/setup.py
|
||||
===================================================================
|
||||
--- aiohttp-3.7.2.orig/setup.py
|
||||
+++ aiohttp-3.7.2/setup.py
|
||||
@@ -27,7 +27,6 @@ extensions = [
|
||||
"aiohttp._http_parser",
|
||||
[
|
||||
"aiohttp/_http_parser.c",
|
||||
- "vendor/http-parser/http_parser.c",
|
||||
"aiohttp/_find_header.c",
|
||||
],
|
||||
define_macros=[("HTTP_PARSER_STRICT", 0)],
|
Loading…
x
Reference in New Issue
Block a user