Update dependency aiohttp to v3 (branch1) #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==0.16.3
->==3.7.4
By merging this PR, the below issues will be automatically resolved and closed:
Release Notes
aio-libs/aiohttp
v3.7.4
Compare Source
========================
Misc
chardet
runtime dependencyto allow their v4.0 version stream.
#​5366 <https://github.com/aio-libs/aiohttp/issues/5366>
_v3.7.3
Compare Source
==================
Features
#​3803 <https://github.com/aio-libs/aiohttp/issues/3803>
_#​4077 <https://github.com/aio-libs/aiohttp/issues/4077>
_Bugfixes
HTTP Reason Phrase.
#​3532 <https://github.com/aio-libs/aiohttp/issues/3532>
_web_middlewares.normalize_path_middleware
behavior for patch without slash.#​3669 <https://github.com/aio-libs/aiohttp/issues/3669>
_#​3701 <https://github.com/aio-libs/aiohttp/issues/3701>
_BaseConnector.close()
a coroutine and wait until the client closes all connections. Drop deprecated "with Connector():" syntax.#​3736 <https://github.com/aio-libs/aiohttp/issues/3736>
_sock_read
timeout each time data is received for aaiohttp.client
response.#​3808 <https://github.com/aio-libs/aiohttp/issues/3808>
_#​3880 <https://github.com/aio-libs/aiohttp/issues/3880>
_#​5156 <https://github.com/aio-libs/aiohttp/issues/5156>
_#​5163 <https://github.com/aio-libs/aiohttp/issues/5163>
_#​5230 <https://github.com/aio-libs/aiohttp/issues/5230>
_Improved Documentation
aiohttp.web.FileResponse
.#​3958 <https://github.com/aio-libs/aiohttp/issues/3958>
_#​3964 <https://github.com/aio-libs/aiohttp/issues/3964>
_aiohttp.client.request
.#​4603 <https://github.com/aio-libs/aiohttp/issues/4603>
_#​5228 <https://github.com/aio-libs/aiohttp/issues/5228>
_Misc
#​4102 <https://github.com/aio-libs/aiohttp/issues/4102>
_v3.7.2
Compare Source
==================
Bugfixes
.sendfile()
support#​5149 <https://github.com/aio-libs/aiohttp/issues/5149>
_v3.7.1
Compare Source
==================
Bugfixes
Protocol
.#​5111 <https://github.com/aio-libs/aiohttp/issues/5111>
_#​4901 <https://github.com/aio-libs/aiohttp/issues/4901>
_#​4957 <https://github.com/aio-libs/aiohttp/issues/4957>
_typing_extensions
library.#​5107 <https://github.com/aio-libs/aiohttp/issues/5107>
_ThreadedResolver.resolve
toreturn the resolved IP as the
hostname
in each record, which preventedvalidation of HTTPS connections.
#​5110 <https://github.com/aio-libs/aiohttp/issues/5110>
_#​5115 <https://github.com/aio-libs/aiohttp/issues/5115>
_#​5116 <https://github.com/aio-libs/aiohttp/issues/5116>
_#​5124 <https://github.com/aio-libs/aiohttp/issues/5124>
_web.run_app()
about Python version checking on Windows#​5127 <https://github.com/aio-libs/aiohttp/issues/5127>
_v3.7.0
Compare Source
==================
Features
on_response_prepare
hooks, directly before headers are sent to the client.#​1958 <https://github.com/aio-libs/aiohttp/issues/1958>
_quote_cookie
option toCookieJar
, a way to skip quotation wrapping of cookies containing special characters.#​2571 <https://github.com/aio-libs/aiohttp/issues/2571>
_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 listof registered
AbstractRoute
instances.AbstractRouteDef.register
(and allsubclasses) return a list of registered resources registered resource.
#​3866 <https://github.com/aio-libs/aiohttp/issues/3866>
_#​3882 <https://github.com/aio-libs/aiohttp/issues/3882>
_OSError
on reading/writing instead.#​4080 <https://github.com/aio-libs/aiohttp/issues/4080>
_#​4189 <https://github.com/aio-libs/aiohttp/issues/4189>
_ClientSession.timeout
property.#​4191 <https://github.com/aio-libs/aiohttp/issues/4191>
_#​4224 <https://github.com/aio-libs/aiohttp/issues/4224>
_loop.sendfile()
instead of custom implementation if available.#​4269 <https://github.com/aio-libs/aiohttp/issues/4269>
_#​4393 <https://github.com/aio-libs/aiohttp/issues/4393>
_#​4402 <https://github.com/aio-libs/aiohttp/issues/4402>
_read_bufsize
argument.#​4453 <https://github.com/aio-libs/aiohttp/issues/4453>
_#​4513 <https://github.com/aio-libs/aiohttp/issues/4513>
_method
andurl
attributes toTraceRequestChunkSentParams
andTraceResponseChunkReceivedParams
.#​4674 <https://github.com/aio-libs/aiohttp/issues/4674>
_#​4711 <https://github.com/aio-libs/aiohttp/issues/4711>
_#​4850 <https://github.com/aio-libs/aiohttp/issues/4850>
_None
is passed in as the host.#​4894 <https://github.com/aio-libs/aiohttp/issues/4894>
_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
andmultipart
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 slightlyincreases CPU load as a side effect.
#​5098 <https://github.com/aio-libs/aiohttp/issues/5098>
_Improved Documentation
#​3376 <https://github.com/aio-libs/aiohttp/issues/3376>
_ttl_dns_cache
default value#​3512 <https://github.com/aio-libs/aiohttp/issues/3512>
_#​4201 <https://github.com/aio-libs/aiohttp/issues/4201>
_Optional[str]
toOptional[bool]
#​4204 <https://github.com/aio-libs/aiohttp/issues/4204>
_ttl_dns_cache
type from int to Optional[int].#​4270 <https://github.com/aio-libs/aiohttp/issues/4270>
_#​4272 <https://github.com/aio-libs/aiohttp/issues/4272>
_#​4285 <https://github.com/aio-libs/aiohttp/issues/4285>
_#​4312 <https://github.com/aio-libs/aiohttp/issues/4312>
_#​4314 <https://github.com/aio-libs/aiohttp/issues/4314>
_#​4810 <https://github.com/aio-libs/aiohttp/issues/4810>
_#​4986 <https://github.com/aio-libs/aiohttp/issues/4986>
_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>
_v3.6.3
Compare Source
==================
Bugfixes
<1.6.0
to avoid buggy behavior that will be fixed by the next aiohttprelease.
v3.6.2
Compare Source
==================
Features
#​4077 <https://github.com/aio-libs/aiohttp/issues/4077>
_Iterable
type hint instead ofSequence
forApplication
middlewareparameter.
#​4125 <https://github.com/aio-libs/aiohttp/issues/4125>
_Bugfixes
sock_read
timeout each time data is received for aaiohttp.ClientResponse
.#​3808 <https://github.com/aio-libs/aiohttp/issues/3808>
_#​4063 <https://github.com/aio-libs/aiohttp/issues/4063>
_ClientConnectorError
;self.ssl == None
means default SSL context, not SSL disabled#​4097 <https://github.com/aio-libs/aiohttp/issues/4097>
_#​4106 <https://github.com/aio-libs/aiohttp/issues/4106>
_Improved Documentation
#​2469 <https://github.com/aio-libs/aiohttp/issues/2469>
_#​4100 <https://github.com/aio-libs/aiohttp/issues/4100>
_#​4108 <https://github.com/aio-libs/aiohttp/issues/4108>
_Misc
#​4102 <https://github.com/aio-libs/aiohttp/issues/4102>
_v3.6.1
Compare Source
==================
Features
#​4056 <https://github.com/aio-libs/aiohttp/issues/4056>
_Bugfixes
#​4068 <https://github.com/aio-libs/aiohttp/issues/4068>
_ssl.OP_NO_COMPRESSION
isunavailable because the runtime is built against
an outdated OpenSSL.
#​4052 <https://github.com/aio-libs/aiohttp/issues/4052>
_#​4057 <https://github.com/aio-libs/aiohttp/issues/4057>
_Improved Documentation
#​3723 <https://github.com/aio-libs/aiohttp/issues/3723>
_v3.6.0
Compare Source
==================
Features
Proactor event loop to work.
#​3629 <https://github.com/aio-libs/aiohttp/issues/3629>
_Transfer-Encoding: chunked
header from websocket responses to becompatible with more http proxy servers.
#​3798 <https://github.com/aio-libs/aiohttp/issues/3798>
_#​3980 <https://github.com/aio-libs/aiohttp/issues/3980>
_Bugfixes
Raise a ClientResponseError instead of an AssertionError for a blank
HTTP Reason Phrase.
#​3532 <https://github.com/aio-libs/aiohttp/issues/3532>
_Fix an issue where cookies would sometimes not be set during a redirect.
#​3576 <https://github.com/aio-libs/aiohttp/issues/3576>
_Change normalize_path_middleware to use '308 Permanent 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.
#​3579 <https://github.com/aio-libs/aiohttp/issues/3579>
_Drop the processed task from
all_tasks()
list early. It prevents logging about atask with unhandled exception when the server is used in conjunction with
asyncio.run()
.#​3587 <https://github.com/aio-libs/aiohttp/issues/3587>
_Signal
type annotation changed fromSignal[Callable[['TraceConfig'], Awaitable[None]]]
toSignal[Callable[ClientSession, SimpleNamespace, ...]
.#​3595 <https://github.com/aio-libs/aiohttp/issues/3595>
_Use sanitized URL as Location header in redirects
#​3614 <https://github.com/aio-libs/aiohttp/issues/3614>
_Improve typing annotations for multipart.py along with changes required
by mypy in files that references multipart.py.
#​3621 <https://github.com/aio-libs/aiohttp/issues/3621>
_Close session created inside
aiohttp.request
when unhandled exception occurs#​3628 <https://github.com/aio-libs/aiohttp/issues/3628>
_Cleanup per-chunk data in generic data read. Memory leak fixed.
#​3631 <https://github.com/aio-libs/aiohttp/issues/3631>
_Use correct type for add_view and family
#​3633 <https://github.com/aio-libs/aiohttp/issues/3633>
_Fix keepalive field in slots of
RequestHandler
.#​3644 <https://github.com/aio-libs/aiohttp/issues/3644>
Properly handle ConnectionResetError, to silence the "Cannot write to closing
transport" exception when clients disconnect uncleanly.
#​3648 <https://github.com/aio-libs/aiohttp/issues/3648>
_Suppress pytest warnings due to
test_utils
classes#​3660 <https://github.com/aio-libs/aiohttp/issues/3660>
_Fix overshadowing of overlapped sub-application prefixes.
#​3701 <https://github.com/aio-libs/aiohttp/issues/3701>
_Fixed return type annotation for WSMessage.json()
#​3720 <https://github.com/aio-libs/aiohttp/issues/3720>
_Properly expose TooManyRedirects publicly as documented.
#​3818 <https://github.com/aio-libs/aiohttp/issues/3818>
_Fix missing brackets for IPv6 in proxy CONNECT request
#​3841 <https://github.com/aio-libs/aiohttp/issues/3841>
_Make the signature of
aiohttp.test_utils.TestClient.request
matchasyncio.ClientSession.request
according to the docs#​3852 <https://github.com/aio-libs/aiohttp/issues/3852>
_Use correct style for re-exported imports, makes mypy
--strict
mode happy.#​3868 <https://github.com/aio-libs/aiohttp/issues/3868>
_Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of
View
#​3880 <https://github.com/aio-libs/aiohttp/issues/3880>
_Made cython HTTP parser set Reason-Phrase of the response to an empty string if it is
missing.
#​3906 <https://github.com/aio-libs/aiohttp/issues/3906>
_Add URL to the string representation of ClientResponseError.
#​3959 <https://github.com/aio-libs/aiohttp/issues/3959>
_Accept
istr
keys inLooseHeaders
type hints.#​3976 <https://github.com/aio-libs/aiohttp/issues/3976>
_Fixed race conditions in resolve_host caching and throttling when tracing is enabled.
#​4013 <https://github.com/aio-libs/aiohttp/issues/4013>
For URLs like "unix://localhost/..." set Host HTTP header to "localhost" instead of
"localhost:None".
#​4039 <https://github.com/aio-libs/aiohttp/issues/4039>
_Improved Documentation
#​3526 <https://github.com/aio-libs/aiohttp/issues/3526>
_if __name__ == '__main__':
in server examples.#​3775 <https://github.com/aio-libs/aiohttp/issues/3775>
_#​3783 <https://github.com/aio-libs/aiohttp/issues/3783>
_web.BaseRequest.path
andweb.BaseRequest.raw_path
.#​3791 <https://github.com/aio-libs/aiohttp/issues/3791>
_#​3964 <https://github.com/aio-libs/aiohttp/issues/3964>
_v3.5.4
Compare Source
==================
Bugfixes
.read()
/.readany()
/.iter_any()
which used to return apartial content only in case of compressed content
#​3525 <https://github.com/aio-libs/aiohttp/issues/3525>
_v3.5.3
Compare Source
==================
Bugfixes
aiohttp.web.run_app(access_log=True)
and fix edge case ofaccess_log=True
and the event loop being in debug mode.#​3504 <https://github.com/aio-libs/aiohttp/issues/3504>
_aiohttp.ClientTimeout
type annotations to acceptNone
for fields#​3511 <https://github.com/aio-libs/aiohttp/issues/3511>
_#​3515 <https://github.com/aio-libs/aiohttp/issues/3515>
_v3.5.2
Compare Source
==================
Features
FileResponse
fromweb_fileresponse.py
uses aThreadPoolExecutor
to workwith files asynchronously. I/O based payloads from
payload.py
uses aThreadPoolExecutor
to work with I/O objects asynchronously.#​3313 <https://github.com/aio-libs/aiohttp/issues/3313>
_#​3483 <https://github.com/aio-libs/aiohttp/issues/3483>
_Bugfixes
Payload.headers
are handled. Payload instances now always have headers andContent-Type defined. Fix Payload Content-Disposition header reset after initial
creation.
#​3035 <https://github.com/aio-libs/aiohttp/issues/3035>
_GunicornWebWorker
.#​3464 <https://github.com/aio-libs/aiohttp/issues/3464>
_#​3468 <https://github.com/aio-libs/aiohttp/issues/3468>
_It allows to use Python3.7 context vars smoothly.
#​3471 <https://github.com/aio-libs/aiohttp/issues/3471>
_data
#​3477 <https://github.com/aio-libs/aiohttp/issues/3477>
_collections.MutableMapping
withcollections.abc.MutableMapping
toavoid a deprecation warning.
#​3480 <https://github.com/aio-libs/aiohttp/issues/3480>
_Payload.size
type annotation changed fromOptional[float]
toOptional[int]
.#​3484 <https://github.com/aio-libs/aiohttp/issues/3484>
_web.run_app
finalization.#​3497 <https://github.com/aio-libs/aiohttp/issues/3497>
_Improved Documentation
aiohttp.web.HTTPException
.#​3490 <https://github.com/aio-libs/aiohttp/issues/3490>
_Misc
#​3487 <https://github.com/aio-libs/aiohttp/issues/3487>
_v3.5.1
Compare Source
====================
ClientSession._requote_redirect_url
modification in debugmode.
v3.5.0
Compare Source
====================
Features
#​2387 <https://github.com/aio-libs/aiohttp/pull/2387>
_)#​2809 <https://github.com/aio-libs/aiohttp/pull/2809>
_)app
in the request returned bytest_utils.make_mocked_request
cannow have objects assigned to it and retrieved using the
[]
operator. (#​3174 <https://github.com/aio-libs/aiohttp/pull/3174>
_)request.url
accessible when transport is closed. (#​3177 <https://github.com/aio-libs/aiohttp/pull/3177>
_)zlib_executor_size
argument toResponse
constructor to allow compressionto run in a background executor to avoid blocking the main thread and potentially
triggering health check failures. (
#​3205 <https://github.com/aio-libs/aiohttp/pull/3205>
_)ClientTimeout
inaiohttp.request
(#​3213 <https://github.com/aio-libs/aiohttp/pull/3213>
_)NETRC
environment variable is not set and~/.netrc
file doesn't exist. (
#​3267 <https://github.com/aio-libs/aiohttp/pull/3267>
_)Application.debug``` flag is set and the default logger
aiohttp.accessis used, access logs will now be output using a *stderr*
StreamHandlerif no handlers are attached. Furthermore, if the default logger has no log level set, the log level will be set to
DEBUG``. (#​3324 <https://github.com/aio-libs/aiohttp/pull/3324>
_)session.ws_connect()
. Sometimes server API requires adifferent HTTP method for WebSocket connection establishment. For example,
Docker exec
needs POST. (#​3378 <https://github.com/aio-libs/aiohttp/pull/3378>
_)#​3406 <https://github.com/aio-libs/aiohttp/pull/3406>
_)Bugfixes
access_log_class
viahandler_args
(#​3158 <https://github.com/aio-libs/aiohttp/pull/3158>
_)#​3186 <https://github.com/aio-libs/aiohttp/pull/3186>
_)CIMultiDictProxy
instances forheaders
argument inweb.Response
constructor. (
#​3207 <https://github.com/aio-libs/aiohttp/pull/3207>
_)#​3233 <https://github.com/aio-libs/aiohttp/pull/3233>
_)#​3235 <https://github.com/aio-libs/aiohttp/pull/3235>
_)app.pre_frozen
state to properly handle startup signals insub-applications. (
#​3237 <https://github.com/aio-libs/aiohttp/pull/3237>
_)#​3239 <https://github.com/aio-libs/aiohttp/pull/3239>
_)#​3258 <https://github.com/aio-libs/aiohttp/pull/3258>
_)#​3265 <https://github.com/aio-libs/aiohttp/pull/3265>
_)collections module will not be supported anymore. (
#​3273 <https://github.com/aio-libs/aiohttp/pull/3273>
_)normalize_path_middleware
. (#​3278 <https://github.com/aio-libs/aiohttp/pull/3278>
_)raise_for_status
for aiohttp.request() (#​3290 <https://github.com/aio-libs/aiohttp/pull/3290>
_)#​3304 <https://github.com/aio-libs/aiohttp/pull/3304>
_)#​3308 <https://github.com/aio-libs/aiohttp/pull/3308>
_)def. (
#​3337 <https://github.com/aio-libs/aiohttp/pull/3337>
_)(
#​3361 <https://github.com/aio-libs/aiohttp/pull/3361>
_)#​3364 <https://github.com/aio-libs/aiohttp/pull/3364>
_)sendfile()
syscall is used by static filehandling. (
#​3383 <https://github.com/aio-libs/aiohttp/pull/3383>
_)asyncio.TimeoutError
which was not logged, when it is caughtin the handler. (
#​3414 <https://github.com/aio-libs/aiohttp/pull/3414>
_)Improved Documentation
Application.make_handler
parameters. (#​3152 <https://github.com/aio-libs/aiohttp/pull/3152>
_)#​3215 <https://github.com/aio-libs/aiohttp/pull/3215>
_)web.Application._handle
(#​3229 <https://github.com/aio-libs/aiohttp/pull/3229>
_)behavior and docstring. (
#​3307 <https://github.com/aio-libs/aiohttp/pull/3307>
_)Deprecations and Removals
session.requote_redirect_url
(#​2278 <https://github.com/aio-libs/aiohttp/pull/2278>
_)stream.unread_data()
(#​3260 <https://github.com/aio-libs/aiohttp/pull/3260>
_)resp.enable_compression()
(#​3318 <https://github.com/aio-libs/aiohttp/pull/3318>
_)#​3331 <https://github.com/aio-libs/aiohttp/pull/3331>
_)Connection.detach()
andConnection.writer
. Both methods were brokenfor more than 2 years. (
#​3358 <https://github.com/aio-libs/aiohttp/pull/3358>
_)app.loop
,request.loop
,client.loop
andconnector.loop
properties. (
#​3374 <https://github.com/aio-libs/aiohttp/pull/3374>
_)#​3381 <https://github.com/aio-libs/aiohttp/pull/3381>
_)#​3385 <https://github.com/aio-libs/aiohttp/pull/3385>
_)async with connector:
andawait connector.close()
instead. (#​3417 <https://github.com/aio-libs/aiohttp/pull/3417>
_)read_timeout
andconn_timeout
inClientSession
constructor. (
#​3438 <https://github.com/aio-libs/aiohttp/pull/3438>
_)Misc
v3.4.4
Compare Source
Changes
#​3241 <https://github.com/aio-libs/aiohttp/pull/3241>
_)v3.4.3
Compare Source
Changes
app.pre_frozen
state to properly handle startup signals in sub-applications. (#​3237 <https://github.com/aio-libs/aiohttp/pull/3237>
_)v3.4.2
Compare Source
Changes
iter_chunks
type annotation (#​3230 <https://github.com/aio-libs/aiohttp/pull/3230>
_)v3.4.1
Compare Source
Fixed regressions for HTTP headers processing and documentation publishing
Changes
#​3218 <https://github.com/aio-libs/aiohttp/pull/3218>
_)#​3215 <https://github.com/aio-libs/aiohttp/pull/3215>
_)#​3221 <https://github.com/aio-libs/aiohttp/pull/3221>
_)v3.4.0
Compare Source
Changes
Features
#​3049 <https://github.com/aio-libs/aiohttp/pull/3049>
_)raise_for_status
request parameter (#​3073 <https://github.com/aio-libs/aiohttp/pull/3073>
_)#​3092 <https://github.com/aio-libs/aiohttp/pull/3092>
_)#​3095 <https://github.com/aio-libs/aiohttp/pull/3095>
_)HTTPException
is raised from another exception. (#​3096 <https://github.com/aio-libs/aiohttp/pull/3096>
_)close_boundary
option inMultipartWriter.write
method. Support streaming (#​3104 <https://github.com/aio-libs/aiohttp/pull/3104>
_)remove_slash
option to thenormalize_path_middleware
factory. (#​3173 <https://github.com/aio-libs/aiohttp/pull/3173>
_)AbstractRouteDef
is importable fromaiohttp.web
. (#​3183 <https://github.com/aio-libs/aiohttp/pull/3183>
_)Bugfixes
last
data_received()
callback. (#​3031 <https://github.com/aio-libs/aiohttp/pull/3031>
_)normalize_path_middleware
work when using url encoded paths. (#​3051 <https://github.com/aio-libs/aiohttp/pull/3051>
_)#​3052 <https://github.com/aio-libs/aiohttp/pull/3052>
_)sock_read
timeout. (#​3053 <https://github.com/aio-libs/aiohttp/pull/3053>
_)data=
argument of a client request, iterate over the content withreadany
instead ofreadline
to avoidLine too long
errors. (#​3054 <https://github.com/aio-libs/aiohttp/pull/3054>
_)UrlDispatcher
has no attributeadd_options
, addweb.options
(#​3062 <https://github.com/aio-libs/aiohttp/pull/3062>
_)#​3064 <https://github.com/aio-libs/aiohttp/pull/3064>
_)Let's not reuse connection but close it after processing every response. (
#​3070 <https://github.com/aio-libs/aiohttp/pull/3070>
_)Add helpful debug message to 413 responses (
#​3087 <https://github.com/aio-libs/aiohttp/pull/3087>
_)StreamResponse
equality, now that they areMutableMapping
objects. (#​3100 <https://github.com/aio-libs/aiohttp/pull/3100>
_)#​3116 <https://github.com/aio-libs/aiohttp/pull/3116>
_)206 Partial Content
response withContent-Encoding: gzip
(#​3123 <https://github.com/aio-libs/aiohttp/pull/3123>
_)#​3145 <https://github.com/aio-libs/aiohttp/pull/3145>
_)Improved Documentation
objects in middleware functions. (
#​3020 <https://github.com/aio-libs/aiohttp/pull/3020>
_)#​3072 <https://github.com/aio-libs/aiohttp/pull/3072>
_)#​3115 <https://github.com/aio-libs/aiohttp/pull/3115>
_)#​3146 <https://github.com/aio-libs/aiohttp/pull/3146>
_)#​3147 <https://github.com/aio-libs/aiohttp/pull/3147>
_)#​3151 <https://github.com/aio-libs/aiohttp/pull/3151>
_)app.make_handler
is deprecated, recommend to use runnersAPI instead. (
#​3157 <https://github.com/aio-libs/aiohttp/pull/3157>
_)Deprecations and Removals
loop.current_task()
fromhelpers.current_task()
(#​2826 <https://github.com/aio-libs/aiohttp/pull/2826>
_)reader
parameter fromrequest.multipart()
. (#​3090 <https://github.com/aio-libs/aiohttp/pull/3090>
_)v3.3.2
Compare Source
Bugfix release
Changes
Many HTTP proxies has buggy keepalive support. Let's not reuse connection but
close it after processing every response. (#3070)
Provide vendor source files in tarball (#3076)
v3.3.1
Compare Source
Bugfix release.
Changes
sock_read
timeout. (#3053)data=
argument of a client request,iterate over the content with
readany
instead ofreadline
to avoidLine too long
errors. (#3054)v3.3.0
Compare Source
The main change is introducing new client timeouts.
The release has many new improvements and bugfixes as well.
Changes
Features
ConnectionResetError
instead ofCancelledError
on trying towrite to a closed stream. #2499
ClientTimeout
class and support socket read timeout. #2768aiohttp.web
is used as a program #2956asyncio.streams.FlowControlMixin
#2986@helpers.reify
, 5% boost on macro benchmark #2995runner.addresses
property. #3036bytearray
instead of a list ofbytes
in websocket reader. Itimproves websocket message reading a little. #3039
violates HTTP protocol. #3041
Bugfixes
#2981
#3009
Improved Documentation
#3032
Deprecations and Removals
v3.2.1
Compare Source
Changes
(#2981)
v3.2.0
Compare Source
Changes
Features
TooManyRedirects
exception when client gets redirected too manytimes instead of returning last response. (
#​2631 <https://github.com/aio-libs/aiohttp/pull/2631>
_)web_routedef.py
file (#​2876 <https://github.com/aio-libs/aiohttp/pull/2876>
_)#​2895 <https://github.com/aio-libs/aiohttp/pull/2895>
_)url without fragment part being stripped (
#​2925 <https://github.com/aio-libs/aiohttp/pull/2925>
_)#​2937 <https://github.com/aio-libs/aiohttp/pull/2937>
_)#​2948 <https://github.com/aio-libs/aiohttp/pull/2948>
_)request.config_dict
for exposing nested applications data. (#​2949 <https://github.com/aio-libs/aiohttp/pull/2949>
_)now. (
#​2957 <https://github.com/aio-libs/aiohttp/pull/2957>
_)#​2966 <https://github.com/aio-libs/aiohttp/pull/2966>
_)Bugfixes
app
for TestClient (#​2891 <https://github.com/aio-libs/aiohttp/pull/2891>
_)#​2909 <https://github.com/aio-libs/aiohttp/pull/2909>
_)#​2935 <https://github.com/aio-libs/aiohttp/pull/2935>
_)#​2942 <https://github.com/aio-libs/aiohttp/pull/2942>
_)#​2964 <https://github.com/aio-libs/aiohttp/pull/2964>
_)Improved Documentation
async_timeout
usage from documentation for client API in favor oftimeout
parameter. (#​2865 <https://github.com/aio-libs/aiohttp/pull/2865>
_)#​2921 <https://github.com/aio-libs/aiohttp/pull/2921>
_).serialize()
method with.write()
indocumentation. (
#​2965 <https://github.com/aio-libs/aiohttp/pull/2965>
_)Deprecations and Removals
#​2938 <https://github.com/aio-libs/aiohttp/pull/2938>
_)Misc
v3.1.3
Compare Source
Bugfix release
Changes
#​2910 <https://github.com/aio-libs/aiohttp/pull/2910>
_)v3.1.2
Compare Source
Bugfix release, no new features against 3.1.0
Changes
LineTooLong
exception more detailed about actual data size (#2863)on_chunk_sent
whenwrite_eof()
takes as a param the last chunk (#2909)v3.1.1
Compare Source
Changes
well) in both client and server API as request / response BODY
payloads. (#2802)
v3.1.0
Compare Source
Welcome to aiohttp 3.1 release.
This is an incremental release, fully backward compatible with aiohttp 3.0.
But we have added several new features.
The most visible one is
app.add_routes()
(an alias for existingapp.router.add_routes()
. The addition is very important becauseall aiohttp docs now uses
app.add_routes()
call in codesnippets. All your existing code still do register routes / resource
without any warning but you've got the idea for a favorite way: noisy
app.router.add_get()
is replaced byapp.add_routes()
.The library does not make a preference between decorators::
routes = web.RouteTableDef()
@routes.get('/')
async def hello(request):
return web.Response(text="Hello, world")
app.add_routes(routes)
and route tables as a list::
async def hello(request):
return web.Response(text="Hello, world")
app.add_routes([web.get('/', hello)])
Both ways are equal, user may decide basing on own code taste.
Also we have a lot of minor features, bug fixes and documentation
updates, see below.
Features
ClientResponse.json()
to allow"application/xxx+json" instead of strict "application/json". (#2206)
web.run_app
and gunicornworker. (#2739)
app.cleanup_ctx
property). (#2747)writer.write_headers
a coroutine. (#2762)with response classes. (#2781)
app.add_routes()
method. (#2787)web.static()
andRouteTableDef.static()
API. (#2795)asyncio.set_event_loop()
. Thechange affects aiohttp test utils but backward compatibility is not broken
for 99.99% of use cases. (#2804)
ClientResponse
constructor: make logically required constructorarguments mandatory, drop
_post_init()
method. (#2820)app.add_routes()
in server docs everywhere (#2830)coroutines. (#2836)
Content-Range
header forRange
requests (#2844)Bugfixes
BaseRequest.http_range
now returns a python-like slice whenrequesting the tail of the range. It's now indicated by a negative value in
range.start
rather then inrange.stop
(#2805)(#2827)
Improved Documentation
ClientResponse.json()
documentation to reflect that it nowallows "application/xxx+json" content-types (#2206)
(#2732)
StreamReader
as data at clientside. (#2793)
v3.0.9
Compare Source
Changes
(#2827)
v3.0.8
Compare Source
Changes
asyncio.current_task()
on Python 3.7 (#2825)v3.0.7
Compare Source
Fixed previously broken SSL proxies (http proxies with upgrade to HTTPS by CONNECT method).
Changes
setup.py
for python version. The checkworks 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. (#2813)v3.0.6
Compare Source
Changes
_reuse_address
and_reuse_port
toweb_runner.TCPSite.__slots__
. (#2792)v3.0.5
Compare Source
The release is pretty important, as well as bug fixes for aiohttp 3.0.4
Update to aiohttp 3.0.5 is highly recommended for aiohttp server code.
Changes
InvalidStateError
on processing a sequence of twoRequestHandler.data_received
calls on web server. (#2773)v3.0.4
Compare Source
Changes
IndexError
in HTTP request handling by server. (#2752)v3.0.3
Compare Source
Changes
attrs
dependency to minimal actually supported version17.0.3 The change allows to avoid version conflicts with currently
existing test tools.
v3.0.2
Compare Source
Upgrade is highly recommended for Windows users.
Changes
/static/D:\path
and/static/\\hostname\drive\path
areforbidden.
v3.0.1
Compare Source
Brief
Major release, many already deprecated things are removed
Minimal supported Python version is 3.5.3.
aiohttp uses shiny
async
/await
syntax everywhere internally (while oldyield from
is still supported).Read https://docs.aiohttp.org/en/stable/whats_new\_3\_0.html for brief information about most important changes.
The full changelog is below:
3.0.0 (2018-02-12)
Features
PayloadWriter.write
method for large request bodies. (#2126)(#2313)
async with test_client.ws_connect(...)
(#2525)web.run_app
implementation. (#2530)
aiohttp.ClientResponse.get_encoding
method public with theprocessing of invalid charset while detecting content encoding. (#2549)
ClientWebSocketResponse
andWebSocketResponse
. (#2551)StreamReader
to prevent flipping between paused andresumed states too often. (#2555)
.netrc
bytrust_env
(#2581)path of the last added resource (#2586)
MultipartWriter.boundary
isstr
now. ([#2589](