e Update to 3.10.5:
* Fixed aiohttp.ClientResponse.json() not setting status when
aiohttp.ContentTypeError is raised
* Improved performance of the WebSocket reader
* Fixed decoding base64 chunk in BodyPartReader
* Fixed a race closing the server-side WebSocket where the close code would
not reach the client
* Fixed unconsumed exceptions raised by the WebSocket heartbeat
* Fixed an edge case in the Python parser when chunk separators happen to
align with network chunks
* Fixed multipart reading when stream buffer splits the boundary over
several read() calls
* Fixed aiohttp.TCPConnector doing blocking I/O in the event loop to create
the SSLContext
* Improved performance of aiohttp.ClientWebSocketResponse.receive and
aiohttp.web.WebSocketResponse.receive when there is no timeout.
* Improved performance of starting request handlers with Python 3.12+
* Improved performance of HTTP keep-alive checks
* Fixed server checks for circular symbolic links to be compatible with
Python 3.13
* Fixed request body not being read when ignoring an Upgrade request
* Fixed an edge case where shutdown would wait for timeout when the handler
was already completed
* Fixed connecting to npipe://, tcp://, and unix:// urls
* Fixed WebSocket ping tasks being prematurely garbage collected
* Fixed incorrectly following symlinks for compressed file variants
(bsc#1229226, CVE-2024-42367)
* Fixed monkey patches for Path.stat() and Path.is_dir() for Python 3.13
compatibility
* Fixed url dispatcher index not matching when a variable is preceded by a
OBS-URL: https://build.opensuse.org/request/show/1194832
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=49
- update to 3.9.5:
* Fixed "Unclosed client session" when initialization of
:py:class:`~aiohttp.ClientSession` fails
* Fixed regression (from :pr:`8280`) with adding Content-
Disposition to the form-data part after appending to writer
* Added default Content-Disposition in multipart/form-data
responses to avoid broken form-data responses
* The asynchronous internals now set the underlying causes when
assigning exceptions to the future objects
* Treated values of Accept-Encoding header as case-insensitive
when checking for gzip files
* Improved the DNS resolution performance on cache hit
* Changed the type annotations to allow dict on
:meth:`aiohttp.MultipartWriter.append`,
:meth:`aiohttp.MultipartWriter.append_json` and
:meth:`aiohttp.MultipartWriter.append_form` -- by
:user:`cakemanny` Related issues and pull requests on GitHub:
:issue:`7741`.
* Ensure websocket transport is closed when client does not
close it
* Leave websocket transport open if receive times out or is
cancelled
* Fixed content not being read when an upgrade request was not
supported with the pure Python implementation.
* Fixed a race condition with incoming connections during
server shutdown
* Fixed multipart/form-data compliance with RFC 7578
* Fixed blocking I/O in the event loop while processing files
in a POST request
* Escaped filenames in static view
OBS-URL: https://build.opensuse.org/request/show/1169371
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=46
* Fixed "Unclosed client session" when initialization of
:py:class:`~aiohttp.ClientSession` fails
* Fixed regression (from :pr:`8280`) with adding Content-
Disposition to the form-data part after appending to writer
* Added default Content-Disposition in multipart/form-data
responses to avoid broken form-data responses
* The asynchronous internals now set the underlying causes when
assigning exceptions to the future objects
* Treated values of Accept-Encoding header as case-insensitive
when checking for gzip files
* Improved the DNS resolution performance on cache hit
* Changed the type annotations to allow dict on
:meth:`aiohttp.MultipartWriter.append`,
:meth:`aiohttp.MultipartWriter.append_json` and
:meth:`aiohttp.MultipartWriter.append_form` -- by
:user:`cakemanny` Related issues and pull requests on GitHub:
:issue:`7741`.
* Ensure websocket transport is closed when client does not
close it
* Leave websocket transport open if receive times out or is
cancelled
* Fixed content not being read when an upgrade request was not
supported with the pure Python implementation.
* Fixed a race condition with incoming connections during
server shutdown
* Fixed multipart/form-data compliance with RFC 7578
* Fixed blocking I/O in the event loop while processing files
in a POST request
* Escaped filenames in static view
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=123
- Update to version 3.9.3
* Fixed backwards compatibility breakage (in 3.9.2) of ``ssl`` parameter
when set outside of ``ClientSession`` (e.g. directly in ``TCPConnector``)
* Improved test suite handling of paths and temp files to consistently
use pathlib and pytest fixtures.
- from version 3.9.2 (bsc#1219341, CVE-2024-23334, bsc#1219342, CVE-2024-23829)
* Fixed server-side websocket connection leak.
* Fixed ``web.FileResponse`` doing blocking I/O in the event loop.
* Fixed double compress when compression enabled and compressed file
exists in server file responses.
* Added runtime type check for ``ClientSession`` ``timeout`` parameter.
* Fixed an unhandled exception in the Python HTTP parser on header lines
starting with a colon.
* Improved validation of paths for static resources requests to the server.
* Added support for passing :py:data:`True` to ``ssl`` parameter in
``ClientSession`` while deprecating :py:data:`None`.
* Fixed an unhandled exception in the Python HTTP parser on header lines
starting with a colon.
* Fixed examples of ``fallback_charset_resolver`` function in the
:doc:`client_advanced` document.
* The Sphinx setup was updated to avoid showing the empty
changelog draft section in the tagged release documentation
builds on Read The Docs.
* The changelog categorization was made clearer. The contributors can
now mark their fragment files more accurately.
* Updated :ref:`contributing/Tests coverage <aiohttp-contributing>`
section to show how we use ``codecov``.
* Replaced all ``tmpdir`` fixtures with ``tmp_path`` in test suite.
- Refresh patches for new version
* remove-re-assert.patch
OBS-URL: https://build.opensuse.org/request/show/1142747
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=116
- update to 3.9.0:
* Introduced ``AppKey`` for static typing support of
``Application`` storage.
* Added a graceful shutdown period which allows pending tasks
to complete before the application's cleanup is called.
* Added `handler_cancellation`_ parameter to cancel web handler on
client disconnection.
* This (optionally) reintroduces a feature removed in a
previous release.
* Recommended for those looking for an extra level of
protection against denial-of-service attacks.
* Added support for setting response header parameters
``max_line_size`` and ``max_field_size``.
* Added ``auto_decompress`` parameter to
``ClientSession.request`` to override
``ClientSession._auto_decompress``.
* Changed ``raise_for_status`` to allow a coroutine.
* Added client brotli compression support (optional with
runtime check).
* Added ``client_max_size`` to ``BaseRequest.clone()`` to allow
overriding the request body size. -- :user:`anesabml`.
* Added a middleware type alias
``aiohttp.typedefs.Middleware``.
* Exported ``HTTPMove`` which can be used to catch any
redirection request that has a location -- :user:`dreamsorcerer`.
* Changed the ``path`` parameter in ``web.run_app()`` to accept
a ``pathlib.Path`` object.
* Performance: Skipped filtering ``CookieJar`` when the jar is
empty or all cookies have expired.
* Performance: Only check origin if insecure scheme and there
OBS-URL: https://build.opensuse.org/request/show/1129056
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=40
* Fixed importing aiohttp under PyPy on Windows.
* Fixed async concurrency safety in websocket compressor.
* Fixed ``ClientResponse.close()`` releasing the connection
instead of closing.
* Fixed a regression where connection may get closed during
upgrade. -- by :user:`Dreamsorcerer`
* Fixed messages being reported as upgraded without an Upgrade
header in Python parser. -- by :user:`Dreamsorcerer`
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=109
* Introduced ``AppKey`` for static typing support of
``Application`` storage.
* Added a graceful shutdown period which allows pending tasks
to complete before the application's cleanup is called.
* Added `handler_cancellation`_ parameter to cancel web handler on
client disconnection.
* This (optionally) reintroduces a feature removed in a
previous release.
* Recommended for those looking for an extra level of
protection against denial-of-service attacks.
* Added support for setting response header parameters
``max_line_size`` and ``max_field_size``.
* Added ``auto_decompress`` parameter to
``ClientSession.request`` to override
``ClientSession._auto_decompress``.
* Changed ``raise_for_status`` to allow a coroutine.
* Added client brotli compression support (optional with
runtime check).
* Added ``client_max_size`` to ``BaseRequest.clone()`` to allow
overriding the request body size. -- :user:`anesabml`.
* Added a middleware type alias
``aiohttp.typedefs.Middleware``.
* Exported ``HTTPMove`` which can be used to catch any
redirection request that has a location -- :user:`dreamsorcerer`.
* Changed the ``path`` parameter in ``web.run_app()`` to accept
a ``pathlib.Path`` object.
* Performance: Skipped filtering ``CookieJar`` when the jar is
empty or all cookies have expired.
* Performance: Only check origin if insecure scheme and there
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=106
- update to 3.8.6:
* Security bugfixes
* Upgraded the vendored copy of llhttp_ to v9.1.3
* https://github.com/aio-libs/aiohttp/security/advisories/GHSA-
pjjw-qhg8-p2p9.
* Updated Python parser to comply with RFCs 9110/9112
* https://github.com/aio-libs/aiohttp/security/advisories/GHSA-
gfw2-4jvh-wgfg.
* Added ``fallback_charset_resolver`` parameter in
``ClientSession`` to allow a user-supplied
character set detection function.
Character set detection will no longer be included in 3.9 as
a default. If this feature is needed,
please use `fallback_charset_resolver
* Enabled lenient response parsing for more flexible parsing in
the client
* Fixed ``PermissionError`` when ``.netrc`` is unreadable due
to permissions.
* Fixed output of parsing errors
* Fixed ``GunicornWebWorker`` max_requests_jitter not working.
* Fixed sorting in ``filter_cookies`` to use cookie with
longest path.
* Fixed display of ``BadStatusLine`` messages from llhttp_.
OBS-URL: https://build.opensuse.org/request/show/1124959
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=39
* Security bugfixes
* Upgraded the vendored copy of llhttp_ to v9.1.3
* https://github.com/aio-libs/aiohttp/security/advisories/GHSA-
pjjw-qhg8-p2p9.
* Updated Python parser to comply with RFCs 9110/9112
* https://github.com/aio-libs/aiohttp/security/advisories/GHSA-
gfw2-4jvh-wgfg.
* Added ``fallback_charset_resolver`` parameter in
``ClientSession`` to allow a user-supplied
character set detection function.
Character set detection will no longer be included in 3.9 as
a default. If this feature is needed,
please use `fallback_charset_resolver
* Enabled lenient response parsing for more flexible parsing in
the client
* Fixed ``PermissionError`` when ``.netrc`` is unreadable due
to permissions.
* Fixed output of parsing errors
* Fixed ``GunicornWebWorker`` max_requests_jitter not working.
* Fixed sorting in ``filter_cookies`` to use cookie with
longest path.
* Fixed display of ``BadStatusLine`` messages from llhttp_.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=104
- switch from unmaintained brotlipy to Brotli
- skip more tests
- Drop python39-failures.patch, no longer required.
- Update python39-failures.patch to only fire with Python 3.9.7.
* Made exceptions pickleable. Also changed the repr of
some exceptions. #4077
* Raise a ClientResponseError instead of an AssertionError for a
* Fix web_middlewares.normalize_path_middleware behavior for
* Fix overshadowing of overlapped sub-applications prefixes.
* Make BaseConnector.close() a coroutine and wait until the
client closes all connections. Drop deprecated "with
* Reset the sock_read timeout each time data is received for a
* Fixed type annotation for add_view method of UrlDispatcher to
* Fixed querying the address families from DNS that the current
* Change return type of MultipartReader.__aiter__() and
- Fix python 3.6 build
* Response headers are now prepared prior to running
OBS-URL: https://build.opensuse.org/request/show/1110373
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=37
- skip more tests
- Drop python39-failures.patch, no longer required.
- Update python39-failures.patch to only fire with Python 3.9.7.
* Made exceptions pickleable. Also changed the repr of
some exceptions. #4077
* Raise a ClientResponseError instead of an AssertionError for a
* Fix web_middlewares.normalize_path_middleware behavior for
* Fix overshadowing of overlapped sub-applications prefixes.
* Make BaseConnector.close() a coroutine and wait until the
client closes all connections. Drop deprecated "with
* Reset the sock_read timeout each time data is received for a
* Fixed type annotation for add_view method of UrlDispatcher to
* Fixed querying the address families from DNS that the current
* Change return type of MultipartReader.__aiter__() and
- Fix python 3.6 build
* Response headers are now prepared prior to running
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=100
- Add Update-update_query-calls-to-work-with-latest-yarl.patch to fix
problems with latest python-yarl
- Delete aiohttp-pr7057-bump-charset-normalizer.patch not needed
anymore
- Update to 3.8.4:
* Fixed incorrectly overwriting cookies with the same name and
domain, but different path. (#6638)
* Fixed ConnectionResetError not being raised after client
disconnection in SSL environments. (#7180)
- Move documentation into the main package for SLE15
OBS-URL: https://build.opensuse.org/request/show/1083129
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=34
problems with latest python-yarl
- Delete aiohttp-pr7057-bump-charset-normalizer.patch not needed
anymore
- Update to 3.8.4:
* Fixed incorrectly overwriting cookies with the same name and
domain, but different path. (#6638)
* Fixed ConnectionResetError not being raised after client
disconnection in SSL environments. (#7180)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=90
- skip more tests
- update to 3.8.3:
* Increased the upper boundary of the :doc:`multidict:index` dependency
to allow for the version 6 -- by :user:`hugovk`.
* Added support for registering :rfc:`OPTIONS <9110#OPTIONS>`
HTTP method handlers via :py:class:`~aiohttp.web.RouteTableDef`.
* Started supporting :rfc:`authority-form <9112#authority-form>` and
:rfc:`absolute-form <9112#absolute-form>` URLs on the server-side.
* Fixed Python 3.11 incompatibilities by using Cython 0.29.25.
* Extended the ``sock`` argument typing declaration of the
:py:func:`~aiohttp.web.run_app` function as optionally
accepting iterables.
* Fixed a regression where :py:exc:`~asyncio.CancelledError`
occurs on client disconnection.
* Started exporting :py:class:`~aiohttp.web.PrefixedSubAppResource`
under :py:mod:`aiohttp.web` -- by :user:`Dreamsorcerer`.
* Dropped the :class:`object` type possibility from
the :py:attr:`aiohttp.ClientSession.timeout`
property return type declaration.
OBS-URL: https://build.opensuse.org/request/show/1007998
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiohttp?expand=0&rev=28
* Increased the upper boundary of the :doc:`multidict:index` dependency
to allow for the version 6 -- by :user:`hugovk`.
* Added support for registering :rfc:`OPTIONS <9110#OPTIONS>`
HTTP method handlers via :py:class:`~aiohttp.web.RouteTableDef`.
* Started supporting :rfc:`authority-form <9112#authority-form>` and
:rfc:`absolute-form <9112#absolute-form>` URLs on the server-side.
* Fixed Python 3.11 incompatibilities by using Cython 0.29.25.
* Extended the ``sock`` argument typing declaration of the
:py:func:`~aiohttp.web.run_app` function as optionally
accepting iterables.
* Fixed a regression where :py:exc:`~asyncio.CancelledError`
occurs on client disconnection.
* Started exporting :py:class:`~aiohttp.web.PrefixedSubAppResource`
under :py:mod:`aiohttp.web` -- by :user:`Dreamsorcerer`.
* Dropped the :class:`object` type possibility from
the :py:attr:`aiohttp.ClientSession.timeout`
property return type declaration.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=76
- Update to v3.7.3
Features
* Made exceptions pickleable. Also changed the repr of
some exceptions. #4077
Bugfixes
* Raise a ClientResponseError instead of an AssertionError for a
blank HTTP Reason Phrase. #3532
* Fix web_middlewares.normalize_path_middleware behavior for
patch without slash. #3669
* Fix overshadowing of overlapped sub-applications prefixes.
#3701
* Make BaseConnector.close() a coroutine and wait until the
client closes all connections. Drop deprecated "with
Connector():" syntax. #3736
* Reset the sock_read timeout each time data is received for a
aiohttp.client response. #3808
* Fixed type annotation for add_view method of UrlDispatcher to
accept any subclass of View #3880
* Fixed querying the address families from DNS that the current
host supports. #5156
* Change return type of MultipartReader.__aiter__() and
BodyPartReader.__aiter__() to AsyncIterator. #5163
* Provide x86 Windows wheels. #5230
* Improved Documentation
* Add documentation for aiohttp.web.FileResponse. #3958
* Removed deprecation warning in tracing example docs #3964
* Fixed wrong "Usage" docstring of aiohttp.client.request. #4603
* Add aiohttp-pydantic to third party libraries #5228
Misc
* #4102
- Also clean header files in sitearch
- Remove hidden .hash directory (remnant from build process)
- Fix python 3.6 build
* For Leap
* For TW with python36 flavor gh#openSUSE/python-rpm-macros#66
* Always BuildRequire idna_ssl
* Skip a failing test on python 3.6
* Next upstream release will drop python 3.6
OBS-URL: https://build.opensuse.org/request/show/853108
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=56
- Relax JSON content-type checking in the ``ClientResponse.json()`` to allow
"application/xxx+json" instead of strict "application/json". (#2206)
- Bump C HTTP parser to version 2.8 (#2730)
- Accept a coroutine as an application factory in ``web.run_app`` and gunicorn
worker. (#2739)
- Implement application cleanup context (``app.cleanup_ctx`` property). (#2747)
- Make ``writer.write_headers`` a coroutine. (#2762)
- Add tracking signals for getting request/response bodies. (#2767)
- Deprecate ClientResponseError.code in favor of .status to keep similarity
with response classes. (#2781)
- Implement ``app.add_routes()`` method. (#2787)
- Implement ``web.static()`` and ``RouteTableDef.static()`` API. (#2795)
- Install a test event loop as default by ``asyncio.set_event_loop()``. The
change affects aiohttp test utils but backward compatibility is not broken
for 99.99% of use cases. (#2804)
- Refactor ``ClientResponse`` constructor: make logically required constructor
arguments mandatory, drop ``_post_init()`` method. (#2820)
- Use ``app.add_routes()`` in server docs everywhere (#2830)
- Websockets refactoring, all websocket writer methods are converted into
coroutines. (#2836)
- Provide ``Content-Range`` header for ``Range`` requests (#2844)
- Fix websocket client return EofStream. (#2784)
- Fix websocket demo. (#2789)
- Property ``BaseRequest.http_range`` now returns a python-like slice when
requesting the tail of the range. It's now indicated by a negative value in
``range.start`` rather then in ``range.stop`` (#2805)
- Close a connection if an unexpected exception occurs while sending a request
- Fix firing DNS tracing events. (#2841)
- Change ``ClientResponse.json()`` documentation to reflect that it now
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=17
- update to version 3.0.1
* async/await everywhere. The minimal supported Python version is 3.5.3 now.
* Application Runners.
* Client Tracing. Now it is possible by registering special signal handlers
on every request processing stage.
* HTTPS support
* Dropped obsolete API. The release dropped a lot of already deprecated
features.
* The full changelog can be read at
https://aiohttp.readthedocs.io/en/stable/changes.html
- Add python3-idna_ssl, python3-Pygments and python3-aiohttp-theme to
BuildRequires.
- Add Requires: python3-idna_ssl
- Fix tests by removing a file and adding a patch to remove another
failing test due to a DeprecationWarning being issued by pytest because
of a problem in python-pytest-timeout.
* remove-failing-tests-due-to-pytest-timeout-issues.patch
OBS-URL: https://build.opensuse.org/request/show/577624
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiohttp?expand=0&rev=15
"expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; Path=/"
)
- assert Matches(expected) == str(resp.cookies)
+ assert re.match(expected, str(resp.cookies))
def test_cookie_set_after_del() -> None:
@@ -1136,14 +1138,13 @@
await resp.write_eof()
txt = buf.decode("utf8")
assert (
- Matches(
+ re.match(
"HTTP/1.1 200 OK\r\n"
"Content-Length: 0\r\n"
"Content-Type: application/octet-stream\r\n"
"Date: .+\r\n"
"Server: .+\r\n\r\n"
- )
- == txt
+ , txt)
)
@@ -1156,15 +1157,13 @@
txt = buf.decode("utf8")
assert (
- Matches(
+ re.match(
"HTTP/1.1 200 OK\r\n"
"Content-Length: 4\r\n"
"Content-Type: application/octet-stream\r\n"
"Date: .+\r\n"
"Server: .+\r\n\r\n"
- "data"
- )
- == txt
+ "data", txt)
)
@@ -1178,15 +1177,13 @@
txt = buf.decode("utf8")
assert (
- Matches(
+ re.match(
"HTTP/1.1 200 OK\r\n"
"Content-Length: 0\r\n"
"Set-Cookie: name=value\r\n"
"Content-Type: application/octet-stream\r\n"
"Date: .+\r\n"
- "Server: .+\r\n\r\n"
- )
- == txt
+ "Server: .+\r\n\r\n", txt)
)
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.