github aio-libs/aiohttp v3.10.6rc0
3.10.6rc0

latest releases: v3.11.0, v3.10.11, v3.11.0rc2...
pre-releaseone month ago

Bug fixes

  • Implemented binding to IPv6 addresses in the pytest server fixture.

    Related issues and pull requests on GitHub:
    #4650.

  • Fixed StreamResponse.prepared to return True after EOF is sent -- by :user:arthurdarcet.

    Related issues and pull requests on GitHub:
    #5343.

  • Fixed Response.text when body is a Payload -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #6485.

  • Added support for URL credentials with empty (zero-length) username, e.g. https://:password@host -- by :user:shuckc

    Related issues and pull requests on GitHub:
    #6494.

  • Fixed handling of some file-like objects (e.g. tarfile.extractfile()) which raise AttributeError instead of OSError when fileno fails for streaming payload data -- by :user:ReallyReivax.

    Related issues and pull requests on GitHub:
    #6732.

  • Stopped logging exceptions from web.run_app() that would be raised regardless -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #6807.

  • Changed make_mocked_request() to use empty payload by default -- by :user:rahulnht.

    Related issues and pull requests on GitHub:
    #7167.

  • Used more precise type for ClientResponseError.headers, fixing some type errors when using them -- by :user:Dreamorcerer.

    Related issues and pull requests on GitHub:
    #8768.

  • Fixed Python parser chunked handling with multiple Transfer-Encoding values -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8823.

  • Changed behavior when returning an invalid response to send a 500 response -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8845.

  • Stopped adding a default Content-Type header when response has no content -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8858.

  • Fixed an unclosed transport ResourceWarning on web handlers -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8875.

  • Fixed error handling after 100-continue so server sends 500 response instead of disconnecting -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8876.

  • Fixed response reading from closed session to throw an error immediately instead of timing out -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8878.

  • Fixed web router not matching pre-encoded URLs (requires yarl 1.9.6+) -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8898.

  • Fixed CancelledError from one cleanup context stopping other contexts from completing -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8908.

  • Fixed Site.name when host is an empty string -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8929.

  • Fixed resolve_host() 'Task was destroyed but is pending' errors -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8967.

  • Fixed changing scheme/host in Response.clone() for absolute URLs -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8990.

  • Fixed client incorrectly reusing a connection when the previous message had not been fully sent -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8992.

  • Fixed an error when trying to add a route for multiple methods with a path containing a regex pattern -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8998.

  • Updated Python parser to reject messages after a close message, matching C parser behaviour -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9018.

  • Fixed creation of SSLContext inside of :py:class:aiohttp.TCPConnector with multiple event loops in different threads -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9029.

  • Fixed (on Python 3.11+) some edge cases where a task cancellation may get incorrectly suppressed -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9030.

  • Fixed the incorrect use of flags for getnameinfo() in the Resolver --by :user:GitNMLee

    Link-Local IPv6 addresses can now be handled by the Resolver correctly.

    Related issues and pull requests on GitHub:
    #9032.

  • Fixed exception information getting lost on HttpProcessingError -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9052.

  • Fixed If-None-Match not using weak comparison -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9063.

  • Fixed compressed requests failing when no body was provided -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9108.

  • Added :exc:aiohttp.ClientConnectionResetError. Client code that previously threw :exc:ConnectionResetError
    will now throw this -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9137.

  • Fixed race condition that could cause server to close connection incorrectly at keepalive timeout -- by :user:Dreamosorcerer.

    Related issues and pull requests on GitHub:
    #9140.

  • Fixed badly encoded charset crashing when getting response text instead of falling back to charset detector.

    Related issues and pull requests on GitHub:
    #9160.

  • Rejected \n in reason values to avoid sending broken HTTP messages -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9167.

  • Changed :py:meth:ClientResponse.raise_for_status() <aiohttp.ClientResponse.raise_for_status> to only release the connection when invoked outside an async with context -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9239.

Features

  • Improved type on params to match the underlying type allowed by yarl -- by :user:lpetre.

    Related issues and pull requests on GitHub:
    #8564.

Removals and backward incompatible breaking changes

  • Improved middleware performance -- by :user:bdraco.

    The set_current_app method was removed from UrlMappingMatchInfo because it is no longer used, and it was unlikely external caller would ever use it.

    Related issues and pull requests on GitHub:
    #9200.

Improved documentation

  • Clarified that GracefulExit needs to be handled in AppRunner and ServerRunner when using handle_signals=True. -- by :user:Daste745

    Related issues and pull requests on GitHub:
    #4414.

  • Clarified that auth parameter in ClientSession will persist and be included with any request to any origin, even during redirects to different origins. -- by :user:MaximZemskov.

    Related issues and pull requests on GitHub:
    #6764.

  • Clarified which timeout exceptions happen on which timeouts -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8968.

  • Updated ClientSession parameters to match current code -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8991.

Packaging updates and notes for downstreams

  • Fixed test_client_session_timeout_zero to not require internet access -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9004.

Miscellaneous internal changes

  • Improved performance of making requests when there are no auto headers to skip -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #8847.

  • Exported aiohttp.TraceRequestHeadersSentParams -- by :user:Hadock-is-ok.

    Related issues and pull requests on GitHub:
    #8947.

  • Avoided tracing overhead in the http writer when there are no active traces -- by user:bdraco.

    Related issues and pull requests on GitHub:
    #9031.

  • Improved performance of reify Cython implementation -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9054.

  • Use :meth:URL.extend_query() <yarl.URL.extend_query> to extend query params (requires yarl 1.11.0+) -- by :user:bdraco.

    If yarl is older than 1.11.0, the previous slower hand rolled version will be used.

    Related issues and pull requests on GitHub:
    #9068.

  • Improved performance of checking if a host is an IP Address -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9095.

  • Significantly improved performance of middlewares -- by :user:bdraco.

    The construction of the middleware wrappers is now cached and is built once per handler instead of on every request.

    Related issues and pull requests on GitHub:
    #9158, #9170.

  • Improved performance of web requests -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9168, #9169, #9172, #9174, #9175, #9241.

  • Improved performance of starting web requests when there is no response prepare hook -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9173.

  • Significantly improved performance of expiring cookies -- by :user:bdraco.

    Expiring cookies has been redesigned to use :mod:heapq instead of a linear search, to better scale.

    Related issues and pull requests on GitHub:
    #9203.

  • Significantly sped up filtering cookies -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9204.


Don't miss a new aiohttp release

NewReleases is sending notifications on new releases.