./www/py-aiohttp, Async http client/server framework

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 3.11.10, Package name: py312-aiohttp-3.11.10, Maintainer: pkgsrc-users

HTTP client/server for asyncio (PEP 3156).

Features:
* Supports both Client and HTTP Server.
* Supports both Server WebSockets and Client WebSockets out-of-the-box.
* Web-server has Middlewares, Signals and pluggable routing.


Required to run:
[devel/py-setuptools] [converters/py-chardet] [devel/py-cython] [devel/py-attrs] [databases/py-multidict] [www/py-yarl] [devel/py-async-timeout] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 7489.094 KB

Version history: (Expand)


CVS history: (Expand)


   2024-12-06 09:08:53 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-aiohttp: updated to 3.11.10

3.11.10 (2024-12-05)

Bug fixes

- Fixed race condition in :class:`aiohttp.web.FileResponse` that could have \ 
resulted in an incorrect response if the file was replaced on the file system \ 
during ``prepare``
- Replaced deprecated call to :func:`mimetypes.guess_type` with \ 
:func:`mimetypes.guess_file_type` when using Python 3.13+
- Disabled zero copy writes in the ``StreamWriter``
   2024-12-04 10:26:23 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-aiohttp: updated to 3.11.9

3.11.9 (2024-12-01)

Bug fixes

- Fixed invalid method logging unexpected being logged at exception level on \ 
subsequent connections

Miscellaneous internal changes

- Improved performance of parsing headers when using the C parser

3.11.8 (2024-11-27)

Miscellaneous internal changes

- Improved performance of creating :class:`aiohttp.ClientResponse` objects when \ 
there are no cookies
- Improved performance of creating :class:`aiohttp.ClientResponse` objects
- Improved performances of creating objects during the HTTP request lifecycle
- Improved performance of constructing :class:`aiohttp.web.Response` with headers
- Improved performance of making requests when there are no auto headers to skip
- Downgraded logging of invalid HTTP method exceptions on the first request to \ 
debug level

  HTTP requests starting with an invalid method are relatively common, \ 
especially when connected to the public internet, because browsers or other \ 
clients may try to speak SSL to a plain-text server or vice-versa. These \ 
exceptions can quickly fill the log with noise when nothing is wrong.
   2024-11-24 08:27:08 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-aiohttp: updated to 3.11.7

3.11.7 (2024-11-21)

Bug fixes

- Fixed the HTTP client not considering the connector's ``force_close`` value \ 
when setting the ``Connection`` header

Miscellaneous internal changes

- Improved performance of serializing HTTP headers

3.11.6 (2024-11-19)

Bug fixes

- Restored the ``force_close`` method to the ``ResponseHandler``

3.11.5 (2024-11-19)

Bug fixes

- Fixed the ``ANY`` method not appearing in :meth:`~aiohttp.web.UrlDispatcher.routes`

3.11.4 (2024-11-18)

Bug fixes

- Fixed ``StaticResource`` not allowing the ``OPTIONS`` method after calling \ 
``set_options_route``

Miscellaneous internal changes

- Improved performance of creating web responses when there are no cookies

3.11.3 (2024-11-18)

Bug fixes

- Removed non-existing ``__author__`` from ``dir(aiohttp)``
- Restored the ``FlowControlDataQueue`` class
  This class is no longer used internally, and will be permanently removed in \ 
the next major version.

Miscellaneous internal changes

- Improved performance of resolving resources when multiple methods are \ 
registered for the same route
   2024-11-16 11:18:16 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-aiohttp: updated to 3.11.2

3.11.2 (2024-11-14)

Bug fixes

- Fixed improperly closed WebSocket connections generating an unhandled exception

3.11.1 (2024-11-14)

Bug fixes

- Added a backward compatibility layer to :class:`aiohttp.RequestInfo` to allow \ 
creating these objects without a ``real_url``
   2024-11-14 19:22:00 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-aiohttp: updated to 3.11.0

3.11.0 (2024-11-13)

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(...)`
- Modified websocket :meth:`aiohttp.ClientWebSocketResponse.receive_str`, \ 
:py:meth:`aiohttp.ClientWebSocketResponse.receive_bytes`, \ 
:py:meth:`aiohttp.web.WebSocketResponse.receive_str` & \ 
:py:meth:`aiohttp.web.WebSocketResponse.receive_bytes` methods to raise new \ 
:py:exc:`aiohttp.WSMessageTypeError` exception, instead of generic \ 
:py:exc:`TypeError`, when websocket messages of incorrect types are received
- Made ``TestClient.app`` a ``Generic`` so type checkers will know the correct \ 
type (avoiding unneeded ``client.app is not None`` checks)
- Fixed the keep-alive connection pool to be FIFO instead of LIFO
  Keep-alive connections are more likely to be reused before they disconnect.

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`
- Added ``server_hostname`` parameter to ``ws_connect``.
- Exported :py:class:`~aiohttp.ClientWSTimeout` to top-level namespace
- Added ``secure``/``httponly``/``samesite`` parameters to ``.del_cookie()``
- 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
- Added ``proxy`` and ``proxy_auth`` parameters to :py:class:`~aiohttp.ClientSession`
- Added ``default_to_multipart`` parameter to ``FormData``.
- Added :py:meth:`~aiohttp.ClientWebSocketResponse.send_frame` and \ 
:py:meth:`~aiohttp.web.WebSocketResponse.send_frame` for WebSockets
- Updated :py:class:`~aiohttp.ClientSession` to support paths in ``base_url`` \ 
parameter.
- Improved performance of reading WebSocket messages with a Cython implementation
- 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
- Added an :attr:`~aiohttp.abc.AbstractAccessLogger.enabled` property to \ 
:class:`aiohttp.abc.AbstractAccessLogger` to dynamically check if logging is \ 
enabled

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`.

Removals and backward incompatible breaking changes

- Dropped support for Python 3.8
- Increased minimum yarl version to 1.17.0
- Removed the ``is_ipv6_address`` and ``is_ip4_address`` helpers are they are no \ 
longer used
- Changed ``ClientRequest.connection_key`` to be a `NamedTuple` to improve \ 
client performance
- ``FlowControlDataQueue`` has been replaced with the ``WebSocketDataQueue``
- Changed ``ClientRequest.request_info`` to be a `NamedTuple` to improve client \ 
performance

Packaging updates and notes for downstreams

- Switched to using the :mod:`propcache <propcache.api>` package for \ 
property caching
  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.
- Separated ``aiohttp.http_websocket`` into multiple files to make it easier to \ 
maintain

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.

Miscellaneous internal changes

- Added flake8 settings to avoid some forms of implicit concatenation.
- Enabled keep-alive support on proxies (which was originally disabled several \ 
years ago)
- Changed web entry point to not listen on TCP when only a Unix path is passed
- Disabled automatic retries of failed requests in \ 
:class:`aiohttp.test_utils.TestClient`'s client session
  (which could potentially hide errors in tests)
- Changed web ``keepalive_timeout`` default to around an hour in order to reduce \ 
race conditions on reverse proxies
- Reduced memory required for stream objects created during the client request \ 
lifecycle
- Improved performance of the internal ``DataQueue``
- Improved performance of calling ``receive`` for WebSockets for the most common \ 
message types
- Replace internal helper methods ``method_must_be_empty_body`` and \ 
``status_code_must_be_empty_body`` with simple `set` lookups
- Improved performance of :py:class:`aiohttp.BaseConnector` when there is no \ 
``limit_per_host``
- Improved performance of sending HTTP requests when there is no body
- Improved performance of the ``WebsocketWriter`` when the protocol is not paused
- Implemented zero copy writes for ``StreamWriter``
   2024-11-13 18:35:37 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-aiohttp: updated to 3.10.11

3.10.11 (2024-11-13)

Bug fixes

- Authentication provided by a redirect now takes precedence over provided \ 
``auth`` when making requests with the client
- Fixed :py:meth:`WebSocketResponse.close() \ 
<aiohttp.web.WebSocketResponse.close>` to discard non-close messages \ 
within its timeout window after sending close
- Fixed a deadlock that could occur while attempting to get a new connection \ 
slot after a timeout
  The connector was not cancellation-safe.
- Fixed the WebSocket flow control calculation undercounting with multi-byte data
- Fixed incorrect parsing of chunk extensions with the pure Python parser
- Fixed system routes polluting the middleware cache

Removals and backward incompatible breaking changes

- Improved performance of the connector when a connection can be reused
  If ``BaseConnector.connect`` has been subclassed and replaced with custom \ 
logic, the ``ceil_timeout`` must be added.

Miscellaneous internal changes

- Improved performance of the client request lifecycle when there are no cookies
- Improved performance of serializing HTTP headers
- Passing ``enable_cleanup_closed`` to :py:class:`aiohttp.TCPConnector` is now \ 
ignored on Python 3.12.7+ and 3.13.1+ since the underlying bug that caused \ 
asyncio to leak SSL connections has been fixed upstream
   2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862)
Log message:
py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
   2024-10-14 18:56:43 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-aiohttp: updated to 3.10.10

3.10.10 (2024-10-10)

Bug fixes

- Fixed error messages from :py:class:`~aiohttp.resolver.AsyncResolver` being \ 
swallowed

Features

- Added :exc:`aiohttp.ClientConnectorDNSError` for differentiating DNS \ 
resolution errors from other connector errors

Miscellaneous internal changes

- Simplified DNS resolution throttling code to reduce chance of race conditions