http client/server for asyncio v3.7.0 Release Notes
Release Date: 2020-10-24 // over 3 years ago-
๐ 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 toCookieJar
, 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 fromsys.exc_info()
.
#3557 <https://github.com/aio-libs/aiohttp/issues/3557>
_ - ๐
web.UrlDispatcher.add_routes
andweb.Application.add_routes
return a list
of registeredAbstractRoute
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
andurl
attributes toTraceRequestChunkSentParams
andTraceResponseChunkReceivedParams
.
#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>
_ - 0๏ธโฃ 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]
toList[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]
toOptional[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>
_
- Response headers are now prepared prior to running