Commit graph

66 commits

Author SHA1 Message Date
adam c2f00f63be py-aiohttp: updated to 3.9.3
3.9.3 (2024-01-29)

Bug fixes

- Fixed backwards compatibility breakage (in 3.9.2) of ``ssl`` parameter when set outside
  of ``ClientSession`` (e.g. directly in ``TCPConnector``)
2024-01-30 11:22:07 +00:00
adam cebfe24798 py-aiohttp: updated to 3.9.2
3.9.2 (2024-01-28)

Bug fixes

- 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

  Invalid request lines with anything but a dot between the HTTP major and minor version are now rejected.
  Invalid header field names containing question mark or slash are now rejected.
  Such requests are incompatible with :rfc:`9110#section-5.6.2` and are not known to be of any legitimate use.

- Improved validation of paths for static resources requests to the server

Features

- Added support for passing :py:data:`True` to ``ssl`` parameter in ``ClientSession`` while
  deprecating :py:data:`None`

Breaking changes

- Fixed an unhandled exception in the Python HTTP parser on header lines starting with a colon

  Invalid request lines with anything but a dot between the HTTP major and minor version are now rejected.
  Invalid header field names containing question mark or slash are now rejected.
  Such requests are incompatible with :rfc:`9110#section-5.6.2` and are not known to be of any legitimate use.

Improved documentation

- 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
2024-01-29 06:53:52 +00:00
adam 0897ec8aed py-aiohttp: updated to 3.9.1
3.9.1 (2023-11-26)

Bugfixes

- 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.
- Fixed messages being reported as upgraded without an Upgrade header in Python parser.
2023-11-27 06:59:01 +00:00
wiz aaeddae1b3 py-aiohttp: update to 3.9.0.
Bugfixes.
2023-11-19 13:52:13 +00:00
wiz 46974a4bd3 python/wheel.mk: simplify a lot, and switch to 'installer' for installation
This follows the recommended bootstrap method (flit_core, build, installer).

However, installer installs different files than pip, so update PLISTs
for all packages using wheel.mk and bump their PKGREVISIONs.
2023-10-28 19:56:54 +00:00
adam f6f97d8d19 py-aiohttp: updated to 3.8.6
3.8.6 (2023-10-07)

Security bugfixes

- Upgraded the vendored copy of llhttp_ to v9.1.3
- Updated Python parser to comply with RFCs 9110/9112

Deprecation

- 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 <https://docs.aiohttp.org/en/stable/client_advanced.html#character-set-detection>`_.

Features

- Enabled lenient response parsing for more flexible parsing in the client
  (this should resolve some regressions when dealing with badly formatted HTTP responses).

Bugfixes

- Fixed ``PermissionError`` when ``.netrc`` is unreadable due to permissions.
- Fixed output of parsing errors pointing to a ``\n``.
- 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_.
2023-10-09 12:45:23 +00:00
adam ffe05dea7a py-aiohttp: updated to 3.8.5
3.8.5 (2023-07-19)

Security bugfixes
- Upgraded the vendored copy of llhttp_ to v8.1.1

Features
- Added information to C parser exceptions to show which character caused the error.

Bugfixes
- Fixed a transport is :data:`None` error
2023-07-20 07:47:52 +00:00
adam 58866e43a0 py-aiohttp: updated to 3.8.4
3.8.4 (2023-02-12)

Bugfixes
--------
- Fixed incorrectly overwriting cookies with the same name and domain, but different path.
- Fixed ``ConnectionResetError`` not being raised after client disconnection in SSL environments.
2023-02-13 10:42:54 +00:00
wiz c03826e714 py-aiohttp: unrestrict charset-normalizer dependency
pkgsrc has a newer version

Bump PKGREVISION.

Fix pkglint while here.
2022-12-06 20:14:34 +00:00
adam 1f99b2e80e py-aiohttp: updated to 3.8.3
3.8.3 (2022-09-21)
==================

   This is the last :doc:`aiohttp <index>` release tested under
   Python 3.6. The 3.9 stream is dropping it from the CI and the
   distribution package metadata.

Bugfixes
--------

- Increased the upper boundary of the :doc:`multidict:index` dependency
  to allow for the version 6 -- by :user:`hugovk`.

  It used to be limited below version 7 in :doc:`aiohttp <index>` v3.8.1 but
  was lowered in v3.8.2 via :pr:`6550` and never brought back, causing
  problems with dependency pins when upgrading. :doc:`aiohttp <index>` v3.8.3
  fixes that by recovering the original boundary of ``< 7``.
2022-09-26 18:55:02 +00:00
adam b31310e8c6 py-aiohttp: add missing DEPENDS 2022-01-16 09:05:31 +00:00
js 1cec3fa4f9 Update www/py-aiohttp to 3.8.1
Several versions skipped, check https://github.com/aio-libs/aiohttp/releases
for change log.
2022-01-15 23:35:13 +00:00
wiz bb579283d0 *: bump PKGREVISION for egg.mk users
They now have a tool dependency on py-setuptools instead of a DEPENDS
2022-01-04 20:53:26 +00:00
adam 4a26d6e2a8 Do not mention Python 3.6 2021-12-30 13:24:01 +00:00
nia 0a4acf7fe3 www: Replace RMD160 checksums with BLAKE2s checksums
All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Not committed (merge conflicts):
www/nghttp2/distinfo

Unfetchable distfiles (almost certainly fetched conditionally...):
./www/nginx-devel/distinfo array-var-nginx-module-0.05.tar.gz
./www/nginx-devel/distinfo echo-nginx-module-0.62.tar.gz
./www/nginx-devel/distinfo encrypted-session-nginx-module-0.08.tar.gz
./www/nginx-devel/distinfo form-input-nginx-module-0.12.tar.gz
./www/nginx-devel/distinfo headers-more-nginx-module-0.33.tar.gz
./www/nginx-devel/distinfo lua-nginx-module-0.10.19.tar.gz
./www/nginx-devel/distinfo naxsi-1.3.tar.gz
./www/nginx-devel/distinfo nginx-dav-ext-module-3.0.0.tar.gz
./www/nginx-devel/distinfo nginx-rtmp-module-1.2.2.tar.gz
./www/nginx-devel/distinfo nginx_http_push_module-1.2.10.tar.gz
./www/nginx-devel/distinfo ngx_cache_purge-2.5.1.tar.gz
./www/nginx-devel/distinfo ngx_devel_kit-0.3.1.tar.gz
./www/nginx-devel/distinfo ngx_http_geoip2_module-3.3.tar.gz
./www/nginx-devel/distinfo njs-0.5.0.tar.gz
./www/nginx-devel/distinfo set-misc-nginx-module-0.32.tar.gz
./www/nginx/distinfo array-var-nginx-module-0.05.tar.gz
./www/nginx/distinfo echo-nginx-module-0.62.tar.gz
./www/nginx/distinfo encrypted-session-nginx-module-0.08.tar.gz
./www/nginx/distinfo form-input-nginx-module-0.12.tar.gz
./www/nginx/distinfo headers-more-nginx-module-0.33.tar.gz
./www/nginx/distinfo lua-nginx-module-0.10.19.tar.gz
./www/nginx/distinfo naxsi-1.3.tar.gz
./www/nginx/distinfo nginx-dav-ext-module-3.0.0.tar.gz
./www/nginx/distinfo nginx-rtmp-module-1.2.2.tar.gz
./www/nginx/distinfo nginx_http_push_module-1.2.10.tar.gz
./www/nginx/distinfo ngx_cache_purge-2.5.1.tar.gz
./www/nginx/distinfo ngx_devel_kit-0.3.1.tar.gz
./www/nginx/distinfo ngx_http_geoip2_module-3.3.tar.gz
./www/nginx/distinfo njs-0.5.0.tar.gz
./www/nginx/distinfo set-misc-nginx-module-0.32.tar.gz
2021-10-26 11:29:14 +00:00
nia 973412e332 www: Remove SHA1 hashes for distfiles 2021-10-07 15:06:57 +00:00
adam b1b9a85172 py-aiohttp: updated to 3.7.4
3.7.4 (2021-02-25)

Bugfixes

(SECURITY BUG) Started preventing open redirects in the aiohttp.web.normalize_path_middleware middleware. For more details, see https://github.com/aio-libs/aiohttp/security/advisories/GHSA-v6wp-4m6f-gcjg.

Thanks to Beast Glatisant for finding the first instance of this issue and Jelmer Vernooij for reporting and tracking it down in aiohttp.

Fix interpretation difference of the pure-Python and the Cython-based HTTP parsers construct a yarl.URL object for HTTP request-target.

Before this fix, the Python parser would turn the URI's absolute-path for //some-path into / while the Cython code preserved it as //some-path. Now, both do the latter.
2021-02-26 06:21:51 +00:00
leot 570c93fbdb py-aiohttp: Bump chardet requirements in setup.py too
Previously it was only relaxed in pkgsrc DEPENDS resulting in possible runtime
errors.

PKGREVISION++
2021-02-06 20:41:34 +00:00
wiz 0809dde7a9 py-aiohttp: remove upper bound in dependency 2021-01-04 18:57:47 +00:00
adam 1b46253785 py-aiohttp: updated to 3.7.3
3.7.3
=====

Features
--------
- Use Brotli instead of brotlipy
- Made exceptions pickleable. Also changed the repr of some exceptions.

Bugfixes
--------
- Raise a ClientResponseError instead of an AssertionError for a blank
  HTTP Reason Phrase.
- Fix ``web_middlewares.normalize_path_middleware`` behavior for patch without slash.
- Fix overshadowing of overlapped sub-applications prefixes.
- Make `BaseConnector.close()` a coroutine and wait until the client closes all connections. Drop deprecated "with Connector():" syntax.
- Reset the ``sock_read`` timeout each time data is received for a ``aiohttp.client`` response.
- Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View
- Fixed querying the address families from DNS that the current host supports.
- Change return type of MultipartReader.__aiter__() and BodyPartReader.__aiter__() to AsyncIterator.
- Provide x86 Windows wheels.

Improved Documentation
----------------------
- Add documentation for ``aiohttp.web.FileResponse``.
- Removed deprecation warning in tracing example docs
- Fixed wrong "Usage" docstring of ``aiohttp.client.request``.
- Add aiohttp-pydantic to third party libraries
2020-11-19 10:19:50 +00:00
adam 61cf284cf8 py-aiohttp: updated to 3.7.2
3.7.2

Bugfixes
- Fixed static files handling for loops without ``.sendfile()`` support
2020-10-27 22:52:05 +00:00
adam 7296885064 py-aiohttp: updated to 3.7.1
3.7.1

Bugfixes
- Fixed a type error caused by the conditional import of `Protocol`.
- Server doesn't send Content-Length for 1xx or 204
- Fix run_app typing
- Always require ``typing_extensions`` library.
- Fix a variable-shadowing bug causing `ThreadedResolver.resolve` to
  return the resolved IP as the ``hostname`` in each record, which prevented
  validation of HTTPS connections.
- Added annotations to all public attributes.
- Fix flaky test_when_timeout_smaller_second
- Ensure sending a zero byte file does not throw an exception
- Fix a bug in ``web.run_app()`` about Python version checking on Windows
2020-10-26 09:06:20 +00:00
js 62e1408ce4 py-aiohttp: Always depends on py-typing-extensions
web_urldispatcher imports it unconditionally.
2020-10-24 21:48:50 +00:00
js fb38c58b8a Update www/py-aiohttp to 3.7.0
This fixes py-yarl in pkgsrc being too new for py-aiohttp.


3.7.0 (2020-10-24)
==================

Features
--------

- Response headers are now prepared prior to running ``on_response_prepare`` hooks, directly before headers are sent to the client.
  `#1958 <https://github.com/aio-libs/aiohttp/issues/1958>`_
- Add a ``quote_cookie`` option to ``CookieJar``, a way to skip quotation wrapping of cookies containing special characters.
  `#2571 <https://github.com/aio-libs/aiohttp/issues/2571>`_
- Call ``AccessLogger.log`` with the current exception available from ``sys.exc_info()``.
  `#3557 <https://github.com/aio-libs/aiohttp/issues/3557>`_
- `web.UrlDispatcher.add_routes` and `web.Application.add_routes` return a list
  of registered `AbstractRoute` instances. `AbstractRouteDef.register` (and all
  subclasses) return a list of registered resources registered resource.
  `#3866 <https://github.com/aio-libs/aiohttp/issues/3866>`_
- Added properties of default ClientSession params to ClientSession class so it is available for introspection
  `#3882 <https://github.com/aio-libs/aiohttp/issues/3882>`_
- Don't cancel web handler on peer disconnection, raise `OSError` on reading/writing instead.
  `#4080 <https://github.com/aio-libs/aiohttp/issues/4080>`_
- Implement BaseRequest.get_extra_info() to access a protocol transports' extra info.
  `#4189 <https://github.com/aio-libs/aiohttp/issues/4189>`_
- Added `ClientSession.timeout` property.
  `#4191 <https://github.com/aio-libs/aiohttp/issues/4191>`_
- allow use of SameSite in cookies.
  `#4224 <https://github.com/aio-libs/aiohttp/issues/4224>`_
- Use ``loop.sendfile()`` instead of custom implementation if available.
  `#4269 <https://github.com/aio-libs/aiohttp/issues/4269>`_
- Apply SO_REUSEADDR to test server's socket.
  `#4393 <https://github.com/aio-libs/aiohttp/issues/4393>`_
- Use .raw_host instead of slower .host in client API
  `#4402 <https://github.com/aio-libs/aiohttp/issues/4402>`_
- Allow configuring the buffer size of input stream by passing ``read_bufsize`` argument.
  `#4453 <https://github.com/aio-libs/aiohttp/issues/4453>`_
- Pass tests on Python 3.8 for Windows.
  `#4513 <https://github.com/aio-libs/aiohttp/issues/4513>`_
- Add `method` and `url` attributes to `TraceRequestChunkSentParams` and `TraceResponseChunkReceivedParams`.
  `#4674 <https://github.com/aio-libs/aiohttp/issues/4674>`_
- Add ClientResponse.ok property for checking status code under 400.
  `#4711 <https://github.com/aio-libs/aiohttp/issues/4711>`_
- Don't ceil timeouts that are smaller than 5 seconds.
  `#4850 <https://github.com/aio-libs/aiohttp/issues/4850>`_
- TCPSite now listens by default on all interfaces instead of just IPv4 when `None` is passed in as the host.
  `#4894 <https://github.com/aio-libs/aiohttp/issues/4894>`_
- Bump ``http_parser`` to 2.9.4
  `#5070 <https://github.com/aio-libs/aiohttp/issues/5070>`_


Bugfixes
--------

- Fix keepalive connections not being closed in time
  `#3296 <https://github.com/aio-libs/aiohttp/issues/3296>`_
- Fix failed websocket handshake leaving connection hanging.
  `#3380 <https://github.com/aio-libs/aiohttp/issues/3380>`_
- Fix tasks cancellation order on exit. The run_app task needs to be cancelled first for cleanup hooks to run with all tasks intact.
  `#3805 <https://github.com/aio-libs/aiohttp/issues/3805>`_
- Don't start heartbeat until _writer is set
  `#4062 <https://github.com/aio-libs/aiohttp/issues/4062>`_
- Fix handling of multipart file uploads without a content type.
  `#4089 <https://github.com/aio-libs/aiohttp/issues/4089>`_
- Preserve view handler function attributes across middlewares
  `#4174 <https://github.com/aio-libs/aiohttp/issues/4174>`_
- Fix the string representation of ``ServerDisconnectedError``.
  `#4175 <https://github.com/aio-libs/aiohttp/issues/4175>`_
- Raising RuntimeError when trying to get encoding from not read body
  `#4214 <https://github.com/aio-libs/aiohttp/issues/4214>`_
- Remove warning messages from noop.
  `#4282 <https://github.com/aio-libs/aiohttp/issues/4282>`_
- Raise ClientPayloadError if FormData re-processed.
  `#4345 <https://github.com/aio-libs/aiohttp/issues/4345>`_
- Fix a warning about unfinished task in ``web_protocol.py``
  `#4408 <https://github.com/aio-libs/aiohttp/issues/4408>`_
- Fixed 'deflate' compression. According to RFC 2616 now.
  `#4506 <https://github.com/aio-libs/aiohttp/issues/4506>`_
- Fixed OverflowError on platforms with 32-bit time_t
  `#4515 <https://github.com/aio-libs/aiohttp/issues/4515>`_
- Fixed request.body_exists returns wrong value for methods without body.
  `#4528 <https://github.com/aio-libs/aiohttp/issues/4528>`_
- Fix connecting to link-local IPv6 addresses.
  `#4554 <https://github.com/aio-libs/aiohttp/issues/4554>`_
- Fix a problem with connection waiters that are never awaited.
  `#4562 <https://github.com/aio-libs/aiohttp/issues/4562>`_
- Always make sure transport is not closing before reuse a connection.

  Reuse a protocol based on keepalive in headers is unreliable.
  For example, uWSGI will not support keepalive even it serves a
  HTTP 1.1 request, except explicitly configure uWSGI with a
  ``--http-keepalive`` option.

  Servers designed like uWSGI could cause aiohttp intermittently
  raise a ConnectionResetException when the protocol poll runs
  out and some protocol is reused.
  `#4587 <https://github.com/aio-libs/aiohttp/issues/4587>`_
- Handle the last CRLF correctly even if it is received via separate TCP segment.
  `#4630 <https://github.com/aio-libs/aiohttp/issues/4630>`_
- Fix the register_resource function to validate route name before splitting it so that route name can include python keywords.
  `#4691 <https://github.com/aio-libs/aiohttp/issues/4691>`_
- Improve typing annotations for ``web.Request``, ``aiohttp.ClientResponse`` and
  ``multipart`` module.
  `#4736 <https://github.com/aio-libs/aiohttp/issues/4736>`_
- Fix resolver task is not awaited when connector is cancelled
  `#4795 <https://github.com/aio-libs/aiohttp/issues/4795>`_
- Fix a bug "Aiohttp doesn't return any error on invalid request methods"
  `#4798 <https://github.com/aio-libs/aiohttp/issues/4798>`_
- Fix HEAD requests for static content.
  `#4809 <https://github.com/aio-libs/aiohttp/issues/4809>`_
- Fix incorrect size calculation for memoryview
  `#4890 <https://github.com/aio-libs/aiohttp/issues/4890>`_
- Add HTTPMove to _all__.
  `#4897 <https://github.com/aio-libs/aiohttp/issues/4897>`_
- Fixed the type annotations in the ``tracing`` module.
  `#4912 <https://github.com/aio-libs/aiohttp/issues/4912>`_
- Fix typing for multipart ``__aiter__``.
  `#4931 <https://github.com/aio-libs/aiohttp/issues/4931>`_
- Fix for race condition on connections in BaseConnector that leads to exceeding the connection limit.
  `#4936 <https://github.com/aio-libs/aiohttp/issues/4936>`_
- Add forced UTF-8 encoding for ``application/rdap+json`` responses.
  `#4938 <https://github.com/aio-libs/aiohttp/issues/4938>`_
- Fix inconsistency between Python and C http request parsers in parsing pct-encoded URL.
  `#4972 <https://github.com/aio-libs/aiohttp/issues/4972>`_
- Fix connection closing issue in HEAD request.
  `#5012 <https://github.com/aio-libs/aiohttp/issues/5012>`_
- Fix type hint on BaseRunner.addresses (from ``List[str]`` to ``List[Any]``)
  `#5086 <https://github.com/aio-libs/aiohttp/issues/5086>`_
- Make `web.run_app()` more responsive to Ctrl+C on Windows for Python < 3.8. It slightly
  increases CPU load as a side effect.
  `#5098 <https://github.com/aio-libs/aiohttp/issues/5098>`_


Improved Documentation
----------------------

- Fix example code in client quick-start
  `#3376 <https://github.com/aio-libs/aiohttp/issues/3376>`_
- Updated the docs so there is no contradiction in ``ttl_dns_cache`` default value
  `#3512 <https://github.com/aio-libs/aiohttp/issues/3512>`_
- Add 'Deploy with SSL' to docs.
  `#4201 <https://github.com/aio-libs/aiohttp/issues/4201>`_
- Change typing of the secure argument on StreamResponse.set_cookie from ``Optional[str]`` to ``Optional[bool]``
  `#4204 <https://github.com/aio-libs/aiohttp/issues/4204>`_
- Changes ``ttl_dns_cache`` type from int to Optional[int].
  `#4270 <https://github.com/aio-libs/aiohttp/issues/4270>`_
- Simplify README hello word example and add a documentation page for people coming from requests.
  `#4272 <https://github.com/aio-libs/aiohttp/issues/4272>`_
- Improve some code examples in the documentation involving websockets and starting a simple HTTP site with an AppRunner.
  `#4285 <https://github.com/aio-libs/aiohttp/issues/4285>`_
- Fix typo in code example in Multipart docs
  `#4312 <https://github.com/aio-libs/aiohttp/issues/4312>`_
- Fix code example in Multipart section.
  `#4314 <https://github.com/aio-libs/aiohttp/issues/4314>`_
- Update contributing guide so new contributors read the most recent version of that guide. Update command used to create test coverage reporting.
  `#4810 <https://github.com/aio-libs/aiohttp/issues/4810>`_
- Spelling: Change "canonize" to "canonicalize".
  `#4986 <https://github.com/aio-libs/aiohttp/issues/4986>`_
- Add ``aiohttp-sse-client`` library to third party usage list.
  `#5084 <https://github.com/aio-libs/aiohttp/issues/5084>`_


Misc
----

- `#2856 <https://github.com/aio-libs/aiohttp/issues/2856>`_, `#4218 <https://github.com/aio-libs/aiohttp/issues/4218>`_, `#4250 <https://github.com/aio-libs/aiohttp/issues/4250>`_
2020-10-24 18:49:21 +00:00
adam 9c7b3afc35 py-aiohttp: updated to 3.6.3
3.6.3:
Bugfixes
- Pin yarl to ``<1.6.0`` to avoid buggy behavior that will be fixed by the next aiohttp
  release.
2020-10-13 09:05:40 +00:00
adam 077bcd9f46 py-aiohttp: updated to 3.6.2
3.6.2:
Features
- Made exceptions pickleable. Also changed the repr of some exceptions.
- Use Iterable type hint instead of Sequence for Application *middleware*
  parameter.

Bugfixes
- Reset the sock_read timeout each time data is received for a
  aiohttp.ClientResponse.
- Fix handling of expired cookies so they are not stored in CookieJar.
- Fix misleading message in the string representation of ClientConnectorError;
  self.ssl == None means default SSL context, not SSL disabled
- Don't clobber HTTP status when using FileResponse.

Improved Documentation
- Added minimal required logging configuration to logging documentation.
- Update docs to reflect proxy support.
- Fix typo in code example in testing docs.
2019-10-10 07:53:06 +00:00
adam e5a7602def py-aiohttp: updated to 3.6.1
3.6.1:

Features
- Compatibility with Python 3.8.

Bugfixes
- correct some exception string format
- Emit a warning when ``ssl.OP_NO_COMPRESSION`` is
  unavailable because the runtime is built against
  an outdated OpenSSL.
- Update multidict requirement to >= 4.5

Improved Documentation
- Provide pytest-aiohttp namespace for pytest fixtures in docs.
2019-10-04 11:17:57 +00:00
adam 7a8b71f090 py-aiohttp: updated to 3.6.0
3.6.0:
Features
- Add support for Named Pipes (Site and Connector) under Windows. This feature requires Proactor event loop to work.
- Removed `Transfer-Encoding: chunked` header from websocket responses to be compatible with more http proxy servers.
- Accept non-GET request for starting websocket handshake on server side.

Bugfixes
- Raise a ClientResponseError instead of an AssertionError for a blank
  HTTP Reason Phrase.
- Fix an issue where cookies would sometimes not be set during a redirect.
- Change normalize_path_middleware to use 308 redirect instead of 301.
  This behavior should prevent clients from being unable to use PUT/POST
  methods on endpoints that are redirected because of a trailing slash.
- Drop the processed task from ``all_tasks()`` list early. It prevents logging about a task with unhandled exception when the server is used in conjunction with ``asyncio.run()``.
- ``Signal`` type annotation changed from `Signal[Callable[['TraceConfig'], Awaitable[None]]]` to `Signal[Callable[ClientSession, SimpleNamespace, ...]`.
- Use sanitized URL as Location header in redirects
- Improve typing annotations for multipart.py along with changes required
  by mypy in files that references multipart.py.
- Close session created inside ``aiohttp.request`` when unhandled exception occurs
- Cleanup per-chunk data in generic data read. Memory leak fixed.
- Use correct type for add_view and family
- Fix _keepalive field in __slots__ of web_protocol.RequestHandler.
- Properly handle ConnectionResetError, to silence the "Cannot write to closing
  transport" exception when clients disconnect uncleanly.
- Suppress pytest warnings due to test util classes
- Fix overshadowing of overlapped subbaps prefixes.
- Fixed return type annotation for WSMessage.json()
- Properly expose TooManyRedirects publicly as documented.
- Fix missing brackets for IPv6 in proxy CONNECT request
- Make the signature of `aiohttp.test_utils.TestClient.request` match `asyncio.ClientSession.request` according to the docs
- Use correct style for re-exported imports, makes mypy ``--strict`` mode happy.
- Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View
- Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is missing.
- Add URL to the string representation of ClientResponseError.
- Accept istr keys in LooseHeaders type hints.
- Fixed race conditions in _resolve_host caching and throttling when tracing is enabled.
- For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of "localhost:None".
2019-09-07 07:09:27 +00:00
maya 5901ac0824 Omit mentions of python 34 and 35, after those were removed.
- Includes some whitespace changes, to be handled in a separate commit.
2019-04-26 13:13:41 +00:00
adam 7678cca0b8 py-aiohttp: updated to 3.5.4
3.5.4:
Bugfixes
- Fix stream .read() / .readany() / .iter_any() which used to return a
  partial content only in case of compressed content
2019-01-15 22:12:20 +00:00
adam 28add5f29a py-aiohttp: updated to 3.5.3
3.5.3:

Bugfixes
- Fix type stubs for aiohttp.web.run_app(access_log=True) and fix edge case of access_log=True and the event loop being in debug mode.
- Fix aiohttp.ClientTimeout type annotations to accept None for fields
- Send custom per-request cookies even if session jar is empty
- Restore Linux binary wheels publishing on PyPI
2019-01-11 10:11:42 +00:00
adam e73932bf7b py-aiohttp: updated to 3.5.2
3.5.2:

Features
- FileResponse from web_fileresponse.py uses a ThreadPoolExecutor to work with files asynchronously.
  I/O based payloads from payload.py uses a ThreadPoolExecutor to work with I/O objects asynchronously.
- Internal Server Errors in plain text if the browser does not support HTML.

Bugfixes
- Preserve MultipartWriter parts headers on write.

  Refactor the way how Payload.headers are handled. Payload instances now always
  have headers and Content-Type defined.

  Fix Payload Content-Disposition header reset after initial creation.
- Log suppressed exceptions in GunicornWebWorker.
- Remove wildcard imports.
- Use the same task for app initialization and web server handling in gunicorn workers.
  It allows to use Python3.7 context vars smoothly.
- Fix handling of chunked+gzipped response when first chunk does not give uncompressed data
- Replace collections.MutableMapping with collections.abc.MutableMapping to avoid a deprecation warning.
- Payload.size type annotation changed from Optional[float] to Optional[int].
- Ignore done tasks when cancels pending activities on web.run_app finalization.
2019-01-08 19:05:55 +00:00
adam 020d3b5153 py-aiohttp: updated to 3.5.1
3.5.1
- Fix a regression about ClientSession._requote_redirect_url modification in debug
  mode.
2018-12-31 11:19:16 +00:00
adam dbbaa46ca0 py-aiohttp: updated to 3.5.0
3.5.0 (2018-12-22)

Features

The library type annotations are checked in strict mode now.
Add support for setting cookies for individual request
Application.add_domain implementation
The default app in the request returned by test_utils.make_mocked_request can now have objects assigned to it and retrieved using the [] operator.
Make request.url accessible when transport is closed.
Add zlib_executor_size argument to Response constructor to allow compression to run in a background executor to avoid blocking the main thread and potentially triggering health check failures.
Enable users to set ClientTimeout in aiohttp.request
Don’t raise a warning if NETRC environment variable is not set and ~/.netrc file doesn’t exist.
Add default logging handler to web.run_app
If the Application.debug flag is set and the default logger aiohttp.access is used, access logs will now be output using a stderr StreamHandler if no handlers are attached. Furthermore, if the default logger has no log level set, the log level will be set to DEBUG.
Add method argument to session.ws_connect().
Sometimes server API requires a different HTTP method for WebSocket connection establishment.
For example, Docker exec needs POST.
Create a task per request handling.


Bugfixes

Enable passing access_log_class via handler_args
Return empty bytes with end-of-chunk marker in empty stream reader.
Accept CIMultiDictProxy instances for headers argument in web.Response constructor.
Don’t uppercase HTTP method in parser
Make method match regexp RFC-7230 compliant
Add app.pre_frozen state to properly handle startup signals in sub-applications.
Enhanced parsing and validation of helpers.BasicAuth.decode.
Change imports from collections module in preparation for 3.8.
Ensure Host header is added first to ClientRequest to better replicate browser
Fix forward compatibility with Python 3.8: importing ABCs directly from the collections module will not be supported anymore.
Keep the query string by normalize_path_middleware.
Fix missing parameter raise_for_status for aiohttp.request()
Bracket IPv6 addresses in the HOST header
Fix default message for server ping and pong frames.
Fix tests/test_connector.py typo and tests/autobahn/server.py duplicate loop def.
Fix false-negative indicator end_of_HTTP_chunk in StreamReader.readchunk function
Release HTTP response before raising status exception
Fix task cancellation when sendfile() syscall is used by static file handling.
Fix stack trace for asyncio.TimeoutError which was not logged, when it is caught in the handler.


Improved Documentation

Improve documentation of Application.make_handler parameters.
Fix BaseRequest.raw_headers doc.
Fix typo in TypeError exception reason in web.Application._handle
Make server access log format placeholder %b documentation reflect behavior and docstring.
Deprecations and Removals
Deprecate modification of session.requote_redirect_url
Deprecate stream.unread_data()
Deprecated use of boolean in resp.enable_compression()
Encourage creation of aiohttp public objects inside a coroutine
Drop dead Connection.detach() and Connection.writer. Both methods were broken for more than 2 years.
Deprecate app.loop, request.loop, client.loop and connector.loop properties.
Deprecate explicit debug argument. Use asyncio debug mode instead.
Deprecate body parameter in HTTPException (and derived classes) constructor.
Deprecate bare connector close, use async with connector: and await connector.close() instead.
Deprecate obsolete read_timeout and conn_timeout in ClientSession constructor.
2018-12-22 22:45:47 +00:00
adam 6b5b2950ba py-aiohttp: updated to 3.4.4
3.4.4:
Fix installation from sources when compiling toolkit is not available

3.4.3:
Add app.pre_frozen state to properly handle startup signals in sub-applications.
2018-09-06 13:53:16 +00:00
adam 0d99e255ec py-aiohttp: updated to 3.4.2
3.4.2:
Fix iter_chunks type annotation
2018-09-03 07:32:35 +00:00
adam 3e858bc186 py-aiohttp: updated to 3.4.1
3.4.1:
- Fix empty header parsing regression.
- Fix BaseRequest.raw_headers doc.
- Fix documentation building on ReadTheDocs
2018-08-29 07:01:06 +00:00
adam 388b3489a4 py-aiohttp: rearrange PYTHON_VERSIONS_INCOMPATIBLE 2018-08-28 06:27:09 +00:00
adam 1a265c1ccb py-aiohttp: updated to 3.4.0
3.4.0:

Features
Add type hints
Add raise_for_status request parameter
Add type hints to HTTP client
Minor server optimizations
Preserve the cause when HTTPException is raised from another exception.
Add close_boundary option in MultipartWriter.write method. Support streaming
Added a remove_slash option to the normalize_path_middleware factory.
The class AbstractRouteDef is importable from aiohttp.web.

Bugfixes
Prevent double closing when client connection is released before the last data_received() callback.
Make redirect with normalize_path_middleware work when using url encoded paths.
Postpone web task creation to connection establishment.
Fix sock_read timeout.
When using a server-request body as the data= argument of a client request, iterate over the content with readany instead of readline to avoid Line too long errors.
fix UrlDispatcher has no attribute add_options, add web.options
correct filename in content-disposition with multipart body
Many HTTP proxies has buggy keepalive support. Let's not reuse connection but close it after processing every response.
raise 413 "Payload Too Large" rather than raising ValueError in request.post() Add helpful debug message to 413 responses
Fix StreamResponse equality, now that they are MutableMapping objects.
Fix server request objects comparison
Do not hang on 206 Partial Content response with Content-Encoding: gzip
Fix timeout precondition checkers

Improved Documentation
Add a new FAQ entry that clarifies that you should not reuse response objects in middleware functions.
Add FAQ section "Why is creating a ClientSession outside of an event loop dangerous?"
Fix link to Rambler
Fix TCPSite documentation on the Server Reference page.
Fix documentation build configuration file for Windows.
Remove no longer existing lingering_timeout parameter of Application.make_handler from documentation.
Mention that app.make_handler is deprecated, recommend to use runners API instead.

Deprecations and Removals
Drop loop.current_task() from helpers.current_task()
Drop reader parameter from request.multipart().
2018-08-27 11:16:01 +00:00
adam 828c1db4d6 py-aiohttp: updated to 3.3.2
3.3.2:
- Many HTTP proxies has buggy keepalive support. Let's not reuse connection but
  close it after processing every response.
- Provide vendor source files in tarball


3.3.1:
- Fix sock_read timeout.
- When using a server-request body as the data= argument of a client request,
  iterate over the content with readany instead of readline to avoid Line
  too long errors.


3.3.0:
Features
- Raise ConnectionResetError instead of CancelledError on trying to
  write to a closed stream.
- Implement ClientTimeout class and support socket read timeout.
- Enable logging when aiohttp.web is used as a program
- Add canonical property to resources
- Forbid reading response BODY after release
- Implement base protocol class to avoid a dependency from internal
  asyncio.streams.FlowControlMixin
- Cythonize @helpers.reify, 5% boost on macro benchmark
- Optimize HTTP parser
- Implement runner.addresses property.
- Use bytearray instead of a list of bytes in websocket reader. It
  improves websocket message reading a little.
- Remove heartbeat on closing connection on keepalive timeout. The used hack
  violates HTTP protocol.
- Limit websocket message size on reading to 4 MB by default.

Bugfixes
- Don't reuse a connection with the same URL but different proxy/TLS settings
- When parsing the Forwarded header, the optional port number is now preserved.

Improved Documentation
- Make Change Log more visible in docs
- Make style and grammar improvements on the FAQ page.
- Document that signal handlers should be async functions since aiohttp 3.0

Deprecations and Removals
- Deprecate custom application's router.
2018-06-12 15:28:53 +00:00
adam 61fe663f2b py-aiohttp: updated to 3.2.1
3.2.1:
Don’t reuse a connection with the same URL but different proxy/TLS settings
2018-05-11 10:04:41 +00:00
adam 7b44f43cbc py-aiohttp: updated to 3.2.0
3.2.0

Features
Raise TooManyRedirects exception when client gets redirected too many times instead of returning last response.
Extract route definitions into separate web_routedef.py file
Raise an exception on request body reading after sending response.
ClientResponse and RequestInfo now have real_url property, which is request url without fragment part being stripped
Speed up connector limiting
Added and links property for ClientResponse object
Add request.config_dict for exposing nested applications data.
Speed up HTTP headers serialization, server micro-benchmark runs 5% faster now.
Apply assertions in debug mode only

Bugfixes
expose property app for TestClient
Call on_chunk_sent when write_eof takes as a param the last chunk
A closing bracket was added to __repr__ of resources
Fix compression of FileResponse
Fixes some bugs in the limit connection feature

Improved Documentation
Drop async_timeout usage from documentation for client API in favor of timeout parameter.
Improve Gunicorn logging documentation
Replace multipart writer .serialize() method with .write() in documentation.

Deprecations and Removals
Deprecate Application.make_handler()
2018-05-08 04:54:10 +00:00
adam a061d2fc19 py-aiohttp: updated to 3.1.3
3.1.3:
Fix cancellation broadcast during DNS resolve
2018-04-13 11:14:48 +00:00
adam ca57be8530 py-aiohttp: updated to 3.1.2
3.1.2:
Make LineTooLong exception more detailed about actual data size
Call on_chunk_sent when write_eof takes as a param the last chunk
2018-04-06 08:18:18 +00:00
adam 561ba7fcdc py-aiohttp: updated to 3.1.1
3.1.1:
Support asynchronous iterators (and asynchronous generators as well) in both client and server API as request / response BODY payloads.
2018-04-02 12:58:33 +00:00
adam 5d16cbf6cb py-aiohttp: updated to 3.1.0
3.1.0:

Features
- Relax JSON content-type checking in the ClientResponse.json() to allow
  "application/xxx+json" instead of strict "application/json".
- Bump C HTTP parser to version 2.8
- Accept a coroutine as an application factory in web.run_app and gunicorn
  worker.
- Implement application cleanup context
- Make writer.write_headers a coroutine.
- Add tracking signals for getting request/response bodies.
- Deprecate ClientResponseError.code in favor of .status to keep similarity
  with response classes.
- Implement app.add_routes() method.
- Implement web.static() and RouteTableDef.static() API.
- 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.
- Refactor ClientResponse constructor: make logically required constructor
  arguments mandatory, drop _post_init() method.
- Use app.add_routes() in server docs everywhere
- Websockets refactoring, all websocket writer methods are converted into
  coroutines.
- Provide Content-Range header for Range requests

Bugfixes
- Fix websocket client return EofStream.
- Fix websocket demo.
- 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
- Close a connection if an unexpected exception occurs while sending a request
- Fix firing DNS tracing events.

Improved Documentation
- Change ClientResponse.json() documentation to reflect that it now
  allows "application/xxx+json" content-types
- Document behavior when cchardet detects encodings that are unknown to Python.
- Add diagrams for tracing request life style.
- Drop removed functionality for passing StreamReader as data at client
  side.
2018-03-22 08:02:35 +00:00
adam b9d1405f56 py-aiohttp: updated to 3.0.9
3.0.9:
Close a connection if an unexpected exception occurs while sending a request
2018-03-15 09:29:09 +00:00
adam 7148c97760 py-aiohttp: updated to 3.0.8
3.0.8:
Use asyncio.current_task() on Python 3.7
2018-03-13 11:46:13 +00:00
adam bd02b799d6 py-aiohttp: updated to 3.0.7
3.0.7:
Fix SSL proxy support by client.
Restore a imperative check in setup.py for python version. The check works in parallel to environment marker. As effect a error about unsupported Python versions is raised even on outdated systems with very old setuptools version installed.
2018-03-09 08:10:35 +00:00
adam 61769dbe87 py-aiohttp: updated to 3.0.6
3.0.6:
Add _reuse_address and _reuse_port to web_runner.TCPSite.__slots__.
2018-03-05 09:12:20 +00:00