pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/www/py-aiohttp



Module Name:    pkgsrc
Committed By:   adam
Date:           Mon May 26 09:41:15 UTC 2025

Modified Files:
        pkgsrc/www/py-aiohttp: Makefile PLIST distinfo

Log Message:
py-aiohttp: updated to 3.12.0

3.12.0 (2025-05-24)

Bug fixes

- Fixed :py:attr:`~aiohttp.web.WebSocketResponse.prepared` property to correctly reflect the prepared state, especially during timeout scenarios -- by :user:`bdraco`
- Response is now always True, instead of using MutableMapping behaviour (False when map is empty)
- Fixed connection reuse for file-like data payloads by ensuring buffer
  truncation respects content-length boundaries and preventing premature
  connection closure race -- by :user:`bdraco`.
- Fixed pytest plugin to not use deprecated :py:mod:`asyncio` policy APIs.

Features

- Added a comprehensive HTTP Digest Authentication client middleware (DigestAuthMiddleware)
  that implements RFC 7616. The middleware supports all standard hash algorithms
  (MD5, SHA, SHA-256, SHA-512) with session variants, handles both 'auth' and
  'auth-int' quality of protection options, and automatically manages the
  authentication flow by intercepting 401 responses and retrying with proper
  credentials -- by :user:`feus4177`, :user:`TimMenninger`, and :user:`bdraco`.
- Added client middleware support -- by :user:`bdraco` and :user:`Dreamsorcerer`.

  This change allows users to add middleware to the client session and requests, enabling features like
  authentication, logging, and request/response modification without modifying the core
  request logic. Additionally, the ``session`` attribute was added to ``ClientRequest``,
  allowing middleware to access the session for making additional requests.

- Allow user setting zlib compression backend -- by :user:`TimMenninger`

  This change allows the user to call :func:`aiohttp.set_zlib_backend()` with the
  zlib compression module of their choice. Default behavior continues to use
  the builtin ``zlib`` library.
- Added support for overriding the base URL with an absolute one in client sessions
- Added ``host`` parameter to ``aiohttp_server`` fixture -- by :user:`christianwbrock`.
- Detect blocking calls in coroutines using BlockBuster -- by :user:`cbornet`.
- Added ``socket_factory`` to :py:class:`aiohttp.TCPConnector` to allow specifying custom socket options
- Started building armv7l manylinux wheels -- by :user:`bdraco`.
- Implemented shared DNS resolver management to fix excessive resolver object creation
  when using multiple client sessions. The new ``_DNSResolverManager`` singleton ensures
  only one ``DNSResolver`` object is created for default configurations, significantly
  reducing resource usage and improving performance for applications using multiple
  client sessions simultaneously -- by :user:`bdraco`.
- Upgraded to LLHTTP 9.3.0 -- by :user:`Dreamsorcerer`.
- Optimized small HTTP requests/responses by coalescing headers and body into a single TCP packet -- by :user:`bdraco`.

  This change enhances network efficiency by reducing the number of packets sent for small HTTP payloads, improving latency and reducing overhead. Most importantly, this fixes compatibility with 
memory-constrained IoT devices that can only perform a single read operation and expect HTTP requests in one packet. The optimization uses zero-copy ``writelines`` when coalescing data and works with 
both regular and chunked transfer encoding.

  When ``aiohttp`` uses client middleware to communicate with an ``aiohttp`` server, connection reuse is more likely to occur since complete responses arrive in a single packet for small payloads.

  This aligns ``aiohttp`` with other popular HTTP clients that already coalesce small requests.

Improved documentation

- Improved documentation for middleware by adding warnings and examples about
  request body stream consumption. The documentation now clearly explains that
  request body streams can only be read once and provides best practices for
  sharing parsed request data between middleware and handlers


To generate a diff of this commit:
cvs rdiff -u -r1.87 -r1.88 pkgsrc/www/py-aiohttp/Makefile
cvs rdiff -u -r1.16 -r1.17 pkgsrc/www/py-aiohttp/PLIST
cvs rdiff -u -r1.81 -r1.82 pkgsrc/www/py-aiohttp/distinfo

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/www/py-aiohttp/Makefile
diff -u pkgsrc/www/py-aiohttp/Makefile:1.87 pkgsrc/www/py-aiohttp/Makefile:1.88
--- pkgsrc/www/py-aiohttp/Makefile:1.87 Mon Apr 28 07:30:01 2025
+++ pkgsrc/www/py-aiohttp/Makefile      Mon May 26 09:41:15 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.87 2025/04/28 07:30:01 adam Exp $
+# $NetBSD: Makefile,v 1.88 2025/05/26 09:41:15 adam Exp $
 
-DISTNAME=      aiohttp-3.11.18
+DISTNAME=      aiohttp-3.12.0
 PKGNAME=       ${PYPKGPREFIX}-${DISTNAME}
 CATEGORIES=    www python
 MASTER_SITES=  ${MASTER_SITE_PYPI:=a/aiohttp/}
@@ -12,7 +12,7 @@ LICENSE=      apache-2.0
 
 TOOL_DEPENDS+= ${PYPKGPREFIX}-cython-[0-9]*:../../devel/py-cython
 TOOL_DEPENDS+= ${PYPKGPREFIX}-setuptools>=78:../../devel/py-setuptools
-DEPENDS+=      ${PYPKGPREFIX}-aiohappyeyeballs>=2.3.0:../../net/py-aiohappyeyeballs
+DEPENDS+=      ${PYPKGPREFIX}-aiohappyeyeballs>=2.5.0:../../net/py-aiohappyeyeballs
 DEPENDS+=      ${PYPKGPREFIX}-aiosignal>=1.1.2:../../devel/py-aiosignal
 DEPENDS+=      ${PYPKGPREFIX}-attrs>=17.3.0:../../devel/py-attrs
 DEPENDS+=      ${PYPKGPREFIX}-frozenlist>=1.1.1:../../devel/py-frozenlist

Index: pkgsrc/www/py-aiohttp/PLIST
diff -u pkgsrc/www/py-aiohttp/PLIST:1.16 pkgsrc/www/py-aiohttp/PLIST:1.17
--- pkgsrc/www/py-aiohttp/PLIST:1.16    Sun Apr 13 18:59:47 2025
+++ pkgsrc/www/py-aiohttp/PLIST Mon May 26 09:41:15 2025
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.16 2025/04/13 18:59:47 wiz Exp $
+@comment $NetBSD: PLIST,v 1.17 2025/05/26 09:41:15 adam Exp $
 ${PYSITELIB}/${WHEEL_INFODIR}/METADATA
 ${PYSITELIB}/${WHEEL_INFODIR}/RECORD
 ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
@@ -60,6 +60,12 @@ ${PYSITELIB}/aiohttp/client.pyo
 ${PYSITELIB}/aiohttp/client_exceptions.py
 ${PYSITELIB}/aiohttp/client_exceptions.pyc
 ${PYSITELIB}/aiohttp/client_exceptions.pyo
+${PYSITELIB}/aiohttp/client_middleware_digest_auth.py
+${PYSITELIB}/aiohttp/client_middleware_digest_auth.pyc
+${PYSITELIB}/aiohttp/client_middleware_digest_auth.pyo
+${PYSITELIB}/aiohttp/client_middlewares.py
+${PYSITELIB}/aiohttp/client_middlewares.pyc
+${PYSITELIB}/aiohttp/client_middlewares.pyo
 ${PYSITELIB}/aiohttp/client_proto.py
 ${PYSITELIB}/aiohttp/client_proto.pyc
 ${PYSITELIB}/aiohttp/client_proto.pyo

Index: pkgsrc/www/py-aiohttp/distinfo
diff -u pkgsrc/www/py-aiohttp/distinfo:1.81 pkgsrc/www/py-aiohttp/distinfo:1.82
--- pkgsrc/www/py-aiohttp/distinfo:1.81 Mon Apr 28 07:30:01 2025
+++ pkgsrc/www/py-aiohttp/distinfo      Mon May 26 09:41:15 2025
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.81 2025/04/28 07:30:01 adam Exp $
+$NetBSD: distinfo,v 1.82 2025/05/26 09:41:15 adam Exp $
 
-BLAKE2s (aiohttp-3.11.18.tar.gz) = be7decae90d0cbeb97ff527e7b1a3fc99d039d23ed60095e76e2279b1829f9d7
-SHA512 (aiohttp-3.11.18.tar.gz) = 9b25ad5f9800cd84014c55f6a4f7ac217a788a43e301a83c18667b6f294388adf53c81360fd3219007b10b42ce165331dad1907582dc9d3081fd8585b5bcd042
-Size (aiohttp-3.11.18.tar.gz) = 7678653 bytes
+BLAKE2s (aiohttp-3.12.0.tar.gz) = 9289a4a425b674cd5bf0a889d46e719f94fb10aa82388ac4c7f3d8648dd10438
+SHA512 (aiohttp-3.12.0.tar.gz) = 8b3ad37b9aa73eb8961a397cc62dadea8ff286e2de1d91d9cb94f9ac86ae0fbd0127a6fa2867710f2e9accae1093892da4b87c17d5e7c24f8031670a3585d41b
+Size (aiohttp-3.12.0.tar.gz) = 7762804 bytes



Home | Main Index | Thread Index | Old Index