pypi aiohttp 3.11.0b2

one day ago

Bug fixes

  • Raise :exc:aiohttp.ServerFingerprintMismatch exception on client-side if request through http proxy with mismatching server fingerprint digest: aiohttp.ClientSession(headers=headers, connector=TCPConnector(ssl=aiohttp.Fingerprint(mismatch_digest), trust_env=True).request(...) -- by :user:gangj.

    Related issues and pull requests on GitHub:
    #6652.

  • Made TestClient.app a Generic so type checkers will know the correct type (avoiding unneeded client.app is not None checks) -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8977.

  • Authentication provided by a redirect now takes precedence over provided auth when making requests with the client -- by :user:PLPeeters.

    Related issues and pull requests on GitHub:
    #9436.

Features

  • Added strategy parameter to :meth:aiohttp.web.StreamResponse.enable_compression
    The value of this parameter is passed to the :func:zlib.compressobj function, allowing people
    to use a more sufficient compression algorithm for their data served by :mod:aiohttp.web
    -- by :user:shootkin

    Related issues and pull requests on GitHub:
    #6257.

  • Added server_hostname parameter to ws_connect.

    Related issues and pull requests on GitHub:
    #7941.

  • Exported :py:class:~aiohttp.ClientWSTimeout to top-level namespace -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8612.

  • Added secure/httponly/samesite parameters to .del_cookie() -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8956.

  • Updated :py:class:~aiohttp.ClientSession's auth logic to include default auth only if the request URL's origin matches _base_url; otherwise, the auth will not be included -- by :user:MaximZemskov

    Related issues and pull requests on GitHub:
    #8966, #9466.

  • Added proxy and proxy_auth parameters to :py:class:~aiohttp.ClientSession -- by :user:meshya.

    Related issues and pull requests on GitHub:
    #9207.

  • Added default_to_multipart parameter to FormData.

    Related issues and pull requests on GitHub:
    #9335.

  • Added :py:meth:~aiohttp.ClientWebSocketResponse.send_frame and :py:meth:~aiohttp.web.WebSocketResponse.send_frame for WebSockets -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9348.

  • Updated :py:class:~aiohttp.ClientSession to support paths in base_url parameter.
    base_url paths must end with a / -- by :user:Cycloctane.

    Related issues and pull requests on GitHub:
    #9530.

  • Improved performance of reading WebSocket messages with a Cython implementation -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9543, #9554, #9556, #9558, #9636, #9649.

  • Added writer_limit to the :py:class:~aiohttp.web.WebSocketResponse to be able to adjust the limit before the writer forces the buffer to be drained -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9572.

Deprecations (removal in next major release)

  • Deprecate obsolete timeout: float and receive_timeout: Optional[float] in :py:meth:~aiohttp.ClientSession.ws_connect. Change default websocket receive timeout from None to 10.0.

    Related issues and pull requests on GitHub:
    #3945.

Removals and backward incompatible breaking changes

  • Dropped support for Python 3.8 -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8797.

  • Increased minimum yarl version to 1.17.0 -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #8909, #9079, #9305, #9574.

  • Removed the is_ipv6_address and is_ip4_address helpers are they are no longer used -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9344.

  • Changed ClientRequest.connection_key to be a NamedTuple to improve client performance -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9365.

  • Improved performance of the connector when a connection can be reused -- by :user:bdraco.

    If BaseConnector.connect has been subclassed and replaced with custom logic, the ceil_timeout must be added.

    Related issues and pull requests on GitHub:
    #9600.

Packaging updates and notes for downstreams

  • Switched to using the :mod:propcache <propcache.api> package for property caching
    -- by :user:bdraco.

    The :mod:propcache <propcache.api> package is derived from the property caching
    code in :mod:yarl and has been broken out to avoid maintaining it for multiple
    projects.

    Related issues and pull requests on GitHub:
    #9394.

  • Separated aiohttp.http_websocket into multiple files to make it easier to maintain -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9542, #9552.

Contributor-facing changes

  • Changed diagram images generator from blockdiag to GraphViz.
    Generating documentation now requires the GraphViz executable to be included in $PATH or sphinx build configuration.

    Related issues and pull requests on GitHub:
    #9359.

Miscellaneous internal changes

  • Added flake8 settings to avoid some forms of implicit concatenation. -- by :user:booniepepper.

    Related issues and pull requests on GitHub:
    #7731.

  • Enabled keep-alive support on proxies (which was originally disabled several years ago) -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #8920.

  • Changed web entry point to not listen on TCP when only a Unix path is passed -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9033.

  • Disabled automatic retries of failed requests in :class:aiohttp.test_utils.TestClient's client session
    (which could potentially hide errors in tests) -- by :user:ShubhAgarwal-dev.

    Related issues and pull requests on GitHub:
    #9141.

  • Changed web keepalive_timeout default to around an hour in order to reduce race conditions on reverse proxies -- by :user:Dreamsorcerer.

    Related issues and pull requests on GitHub:
    #9285.

  • Reduced memory required for stream objects created during the client request lifecycle -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9407.

  • Improved performance of the client request lifecycle when there are no cookies -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9470.

  • Improved performance of sending client requests when the writer can finish synchronously -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9485.

  • Improved performance of serializing HTTP headers -- by :user:bdraco.

    Related issues and pull requests on GitHub:
    #9603.


Performance

WebSocket reader performance has improved ~60% since b1

aiohttp 3.10.0 yarl 1.9.5
aiohttp_3_10_0_yarl_1_9_5

aiohttp 3.11.0b0 yarl 1.17.0
aiohttp_3_11_0b0_yarl_1_17_0

aiohttp 3.11.0b1 yarl 1.17.1 (no change from b1)

Don't miss a new aiohttp release

NewReleases is sending notifications on new releases.