csko / gdax-python-api

GDAX API written in Python3 using async/await
MIT License
52 stars 21 forks source link

Update aiohttp to 3.8.0 #34

Closed pyup-bot closed 2 years ago

pyup-bot commented 2 years ago

This PR updates aiohttp from 2.2.0 to 3.8.0.

Changelog ### 3.7.4.post0 ``` ======================== Misc ---- - Bumped upper bound of the ``chardet`` runtime dependency to allow their v4.0 version stream. `5366 <https://github.com/aio-libs/aiohttp/issues/5366>`_ ---- ``` ### 3.7.4 ``` ================== 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 <https://github.com/g147>`__ for finding the first instance of this issue and `Jelmer Vernooij <https://jelmer.uk/>`__ for reporting and tracking it down in aiohttp. `5497 <https://github.com/aio-libs/aiohttp/issues/5497>`_ - 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. `5498 <https://github.com/aio-libs/aiohttp/issues/5498>`_ ---- ``` ### 3.7.3 ``` ================== Features -------- - Use Brotli instead of brotlipy `3803 <https://github.com/aio-libs/aiohttp/issues/3803>`_ - Made exceptions pickleable. Also changed the repr of some exceptions. `4077 <https://github.com/aio-libs/aiohttp/issues/4077>`_ Bugfixes -------- - Raise a ClientResponseError instead of an AssertionError for a blank HTTP Reason Phrase. `3532 <https://github.com/aio-libs/aiohttp/issues/3532>`_ - Fix ``web_middlewares.normalize_path_middleware`` behavior for patch without slash. `3669 <https://github.com/aio-libs/aiohttp/issues/3669>`_ - Fix overshadowing of overlapped sub-applications prefixes. `3701 <https://github.com/aio-libs/aiohttp/issues/3701>`_ - Make `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>`_ - Reset the ``sock_read`` timeout each time data is received for a ``aiohttp.client`` response. `3808 <https://github.com/aio-libs/aiohttp/issues/3808>`_ - Fixed type annotation for add_view method of UrlDispatcher to accept any subclass of View `3880 <https://github.com/aio-libs/aiohttp/issues/3880>`_ - Fixed querying the address families from DNS that the current host supports. `5156 <https://github.com/aio-libs/aiohttp/issues/5156>`_ - Change return type of MultipartReader.__aiter__() and BodyPartReader.__aiter__() to AsyncIterator. `5163 <https://github.com/aio-libs/aiohttp/issues/5163>`_ - Provide x86 Windows wheels. `5230 <https://github.com/aio-libs/aiohttp/issues/5230>`_ Improved Documentation ---------------------- - Add documentation for ``aiohttp.web.FileResponse``. `3958 <https://github.com/aio-libs/aiohttp/issues/3958>`_ - Removed deprecation warning in tracing example docs `3964 <https://github.com/aio-libs/aiohttp/issues/3964>`_ - Fixed wrong "Usage" docstring of ``aiohttp.client.request``. `4603 <https://github.com/aio-libs/aiohttp/issues/4603>`_ - Add aiohttp-pydantic to third party libraries `5228 <https://github.com/aio-libs/aiohttp/issues/5228>`_ Misc ---- - `4102 <https://github.com/aio-libs/aiohttp/issues/4102>`_ ---- ``` ### 3.7.2 ``` ================== Bugfixes -------- - Fixed static files handling for loops without ``.sendfile()`` support `5149 <https://github.com/aio-libs/aiohttp/issues/5149>`_ ---- ``` ### 3.7.1 ``` ================== Bugfixes -------- - Fixed a type error caused by the conditional import of `Protocol`. `5111 <https://github.com/aio-libs/aiohttp/issues/5111>`_ - Server doesn't send Content-Length for 1xx or 204 `4901 <https://github.com/aio-libs/aiohttp/issues/4901>`_ - Fix run_app typing `4957 <https://github.com/aio-libs/aiohttp/issues/4957>`_ - Always require ``typing_extensions`` library. `5107 <https://github.com/aio-libs/aiohttp/issues/5107>`_ - 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. `5110 <https://github.com/aio-libs/aiohttp/issues/5110>`_ - Added annotations to all public attributes. `5115 <https://github.com/aio-libs/aiohttp/issues/5115>`_ - Fix flaky test_when_timeout_smaller_second `5116 <https://github.com/aio-libs/aiohttp/issues/5116>`_ - Ensure sending a zero byte file does not throw an exception `5124 <https://github.com/aio-libs/aiohttp/issues/5124>`_ - Fix a bug in ``web.run_app()`` about Python version checking on Windows `5127 <https://github.com/aio-libs/aiohttp/issues/5127>`_ ---- ``` ### 3.7.0 ``` ================== 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>`_ ---- ``` ### 3.6.3 ``` ================== Bugfixes -------- - Pin yarl to ``<1.6.0`` to avoid buggy behavior that will be fixed by the next aiohttp release. ``` ### 3.6.2 ``` ================== Features -------- - Made exceptions pickleable. Also changed the repr of some exceptions. `4077 <https://github.com/aio-libs/aiohttp/issues/4077>`_ - Use ``Iterable`` type hint instead of ``Sequence`` for ``Application`` *middleware* parameter. `4125 <https://github.com/aio-libs/aiohttp/issues/4125>`_ Bugfixes -------- - Reset the ``sock_read`` timeout each time data is received for a ``aiohttp.ClientResponse``. `3808 <https://github.com/aio-libs/aiohttp/issues/3808>`_ - Fix handling of expired cookies so they are not stored in CookieJar. `4063 <https://github.com/aio-libs/aiohttp/issues/4063>`_ - Fix misleading message in the string representation of ``ClientConnectorError``; ``self.ssl == None`` means default SSL context, not SSL disabled `4097 <https://github.com/aio-libs/aiohttp/issues/4097>`_ - Don't clobber HTTP status when using FileResponse. `4106 <https://github.com/aio-libs/aiohttp/issues/4106>`_ Improved Documentation ---------------------- - Added minimal required logging configuration to logging documentation. `2469 <https://github.com/aio-libs/aiohttp/issues/2469>`_ - Update docs to reflect proxy support. `4100 <https://github.com/aio-libs/aiohttp/issues/4100>`_ - Fix typo in code example in testing docs. `4108 <https://github.com/aio-libs/aiohttp/issues/4108>`_ Misc ---- - `4102 <https://github.com/aio-libs/aiohttp/issues/4102>`_ ---- ``` ### 3.6.1 ``` ================== Features -------- - Compatibility with Python 3.8. `4056 <https://github.com/aio-libs/aiohttp/issues/4056>`_ Bugfixes -------- - correct some exception string format `4068 <https://github.com/aio-libs/aiohttp/issues/4068>`_ - Emit a warning when ``ssl.OP_NO_COMPRESSION`` is unavailable because the runtime is built against an outdated OpenSSL. `4052 <https://github.com/aio-libs/aiohttp/issues/4052>`_ - Update multidict requirement to >= 4.5 `4057 <https://github.com/aio-libs/aiohttp/issues/4057>`_ Improved Documentation ---------------------- - Provide pytest-aiohttp namespace for pytest fixtures in docs. `3723 <https://github.com/aio-libs/aiohttp/issues/3723>`_ ---- ``` ### 3.6.0 ``` ================== Features -------- - Add support for Named Pipes (Site and Connector) under Windows. This feature requires Proactor event loop to work. `3629 <https://github.com/aio-libs/aiohttp/issues/3629>`_ - Removed ``Transfer-Encoding: chunked`` header from websocket responses to be compatible with more http proxy servers. `3798 <https://github.com/aio-libs/aiohttp/issues/3798>`_ - Accept non-GET request for starting websocket handshake on server side. `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 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 a task 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 from ``Signal[Callable[['TraceConfig'], Awaitable[None]]]`` to ``Signal[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`` match ``asyncio.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 in ``LooseHeaders`` 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 ---------------------- - Modify documentation for Background Tasks to remove deprecated usage of event loop. `3526 <https://github.com/aio-libs/aiohttp/issues/3526>`_ - use ``if __name__ == '__main__':`` in server examples. `3775 <https://github.com/aio-libs/aiohttp/issues/3775>`_ - Update documentation reference to the default access logger. `3783 <https://github.com/aio-libs/aiohttp/issues/3783>`_ - Improve documentation for ``web.BaseRequest.path`` and ``web.BaseRequest.raw_path``. `3791 <https://github.com/aio-libs/aiohttp/issues/3791>`_ - Removed deprecation warning in tracing example docs `3964 <https://github.com/aio-libs/aiohttp/issues/3964>`_ ---- ``` ### 3.5.4 ``` ================== Bugfixes -------- - Fix stream ``.read()`` / ``.readany()`` / ``.iter_any()`` which used to return a partial content only in case of compressed content `3525 <https://github.com/aio-libs/aiohttp/issues/3525>`_ ``` ### 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. `3504 <https://github.com/aio-libs/aiohttp/issues/3504>`_ - Fix ``aiohttp.ClientTimeout`` type annotations to accept ``None`` for fields `3511 <https://github.com/aio-libs/aiohttp/issues/3511>`_ - Send custom per-request cookies even if session jar is empty `3515 <https://github.com/aio-libs/aiohttp/issues/3515>`_ - Restore Linux binary wheels publishing on PyPI ---- ``` ### 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. `3313 <https://github.com/aio-libs/aiohttp/issues/3313>`_ - Internal Server Errors in plain text if the browser does not support HTML. `3483 <https://github.com/aio-libs/aiohttp/issues/3483>`_ 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. `3035 <https://github.com/aio-libs/aiohttp/issues/3035>`_ - Log suppressed exceptions in ``GunicornWebWorker``. `3464 <https://github.com/aio-libs/aiohttp/issues/3464>`_ - Remove wildcard imports. `3468 <https://github.com/aio-libs/aiohttp/issues/3468>`_ - Use the same task for app initialization and web server handling in gunicorn workers. It allows to use Python3.7 context vars smoothly. `3471 <https://github.com/aio-libs/aiohttp/issues/3471>`_ - Fix handling of chunked+gzipped response when first chunk does not give uncompressed data `3477 <https://github.com/aio-libs/aiohttp/issues/3477>`_ - Replace ``collections.MutableMapping`` with ``collections.abc.MutableMapping`` to avoid a deprecation warning. `3480 <https://github.com/aio-libs/aiohttp/issues/3480>`_ - ``Payload.size`` type annotation changed from ``Optional[float]`` to ``Optional[int]``. `3484 <https://github.com/aio-libs/aiohttp/issues/3484>`_ - Ignore done tasks when cancels pending activities on ``web.run_app`` finalization. `3497 <https://github.com/aio-libs/aiohttp/issues/3497>`_ Improved Documentation ---------------------- - Add documentation for ``aiohttp.web.HTTPException``. `3490 <https://github.com/aio-libs/aiohttp/issues/3490>`_ Misc ---- - `3487 <https://github.com/aio-libs/aiohttp/issues/3487>`_ ---- ``` ### 3.5.1 ``` ==================== - Fix a regression about ``ClientSession._requote_redirect_url`` modification in debug mode. ``` ### 3.5.0 ``` ==================== Features -------- - The library type annotations are checked in strict mode now. - Add support for setting cookies for individual request (`2387 <https://github.com/aio-libs/aiohttp/pull/2387>`_) - Application.add_domain implementation (`2809 <https://github.com/aio-libs/aiohttp/pull/2809>`_) - 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. (`3174 <https://github.com/aio-libs/aiohttp/pull/3174>`_) - Make ``request.url`` accessible when transport is closed. (`3177 <https://github.com/aio-libs/aiohttp/pull/3177>`_) - 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. (`3205 <https://github.com/aio-libs/aiohttp/pull/3205>`_) - Enable users to set ``ClientTimeout`` in ``aiohttp.request`` (`3213 <https://github.com/aio-libs/aiohttp/pull/3213>`_) - Don't raise a warning if ``NETRC`` environment variable is not set and ``~/.netrc`` file doesn't exist. (`3267 <https://github.com/aio-libs/aiohttp/pull/3267>`_) - 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``. (`3324 <https://github.com/aio-libs/aiohttp/pull/3324>`_) - 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. (`3378 <https://github.com/aio-libs/aiohttp/pull/3378>`_) - Create a task per request handling. (`3406 <https://github.com/aio-libs/aiohttp/pull/3406>`_) Bugfixes -------- - Enable passing ``access_log_class`` via ``handler_args`` (`3158 <https://github.com/aio-libs/aiohttp/pull/3158>`_) - Return empty bytes with end-of-chunk marker in empty stream reader. (`3186 <https://github.com/aio-libs/aiohttp/pull/3186>`_) - Accept ``CIMultiDictProxy`` instances for ``headers`` argument in ``web.Response`` constructor. (`3207 <https://github.com/aio-libs/aiohttp/pull/3207>`_) - Don't uppercase HTTP method in parser (`3233 <https://github.com/aio-libs/aiohttp/pull/3233>`_) - Make method match regexp RFC-7230 compliant (`3235 <https://github.com/aio-libs/aiohttp/pull/3235>`_) - Add ``app.pre_frozen`` state to properly handle startup signals in sub-applications. (`3237 <https://github.com/aio-libs/aiohttp/pull/3237>`_) - Enhanced parsing and validation of helpers.BasicAuth.decode. (`3239 <https://github.com/aio-libs/aiohttp/pull/3239>`_) - Change imports from collections module in preparation for 3.8. (`3258 <https://github.com/aio-libs/aiohttp/pull/3258>`_) - Ensure Host header is added first to ClientRequest to better replicate browser (`3265 <https://github.com/aio-libs/aiohttp/pull/3265>`_) - Fix forward compatibility with Python 3.8: importing ABCs directly from the collections module will not be supported anymore. (`3273 <https://github.com/aio-libs/aiohttp/pull/3273>`_) - Keep the query string by ``normalize_path_middleware``. (`3278 <https://github.com/aio-libs/aiohttp/pull/3278>`_) - Fix missing parameter ``raise_for_status`` for aiohttp.request() (`3290 <https://github.com/aio-libs/aiohttp/pull/3290>`_) - Bracket IPv6 addresses in the HOST header (`3304 <https://github.com/aio-libs/aiohttp/pull/3304>`_) - Fix default message for server ping and pong frames. (`3308 <https://github.com/aio-libs/aiohttp/pull/3308>`_) - Fix tests/test_connector.py typo and tests/autobahn/server.py duplicate loop def. (`3337 <https://github.com/aio-libs/aiohttp/pull/3337>`_) - Fix false-negative indicator end_of_HTTP_chunk in StreamReader.readchunk function (`3361 <https://github.com/aio-libs/aiohttp/pull/3361>`_) - Release HTTP response before raising status exception (`3364 <https://github.com/aio-libs/aiohttp/pull/3364>`_) - Fix task cancellation when ``sendfile()`` syscall is used by static file handling. (`3383 <https://github.com/aio-libs/aiohttp/pull/3383>`_) - Fix stack trace for ``asyncio.TimeoutError`` which was not logged, when it is caught in the handler. (`3414 <https://github.com/aio-libs/aiohttp/pull/3414>`_) Improved Documentation ---------------------- - Improve documentation of ``Application.make_handler`` parameters. (`3152 <https://github.com/aio-libs/aiohttp/pull/3152>`_) - Fix BaseRequest.raw_headers doc. (`3215 <https://github.com/aio-libs/aiohttp/pull/3215>`_) - Fix typo in TypeError exception reason in ``web.Application._handle`` (`3229 <https://github.com/aio-libs/aiohttp/pull/3229>`_) - Make server access log format placeholder %b documentation reflect behavior and docstring. (`3307 <https://github.com/aio-libs/aiohttp/pull/3307>`_) Deprecations and Removals ------------------------- - Deprecate modification of ``session.requote_redirect_url`` (`2278 <https://github.com/aio-libs/aiohttp/pull/2278>`_) - Deprecate ``stream.unread_data()`` (`3260 <https://github.com/aio-libs/aiohttp/pull/3260>`_) - Deprecated use of boolean in ``resp.enable_compression()`` (`3318 <https://github.com/aio-libs/aiohttp/pull/3318>`_) - Encourage creation of aiohttp public objects inside a coroutine (`3331 <https://github.com/aio-libs/aiohttp/pull/3331>`_) - Drop dead ``Connection.detach()`` and ``Connection.writer``. Both methods were broken for more than 2 years. (`3358 <https://github.com/aio-libs/aiohttp/pull/3358>`_) - Deprecate ``app.loop``, ``request.loop``, ``client.loop`` and ``connector.loop`` properties. (`3374 <https://github.com/aio-libs/aiohttp/pull/3374>`_) - Deprecate explicit debug argument. Use asyncio debug mode instead. (`3381 <https://github.com/aio-libs/aiohttp/pull/3381>`_) - Deprecate body parameter in HTTPException (and derived classes) constructor. (`3385 <https://github.com/aio-libs/aiohttp/pull/3385>`_) - Deprecate bare connector close, use ``async with connector:`` and ``await connector.close()`` instead. (`3417 <https://github.com/aio-libs/aiohttp/pull/3417>`_) - Deprecate obsolete ``read_timeout`` and ``conn_timeout`` in ``ClientSession`` constructor. (`3438 <https://github.com/aio-libs/aiohttp/pull/3438>`_) Misc ---- - 3341, 3351 ``` ### 3.4.4 ``` ================== - Fix installation from sources when compiling toolkit is not available (`3241 <https://github.com/aio-libs/aiohttp/pull/3241>`_) ``` ### 3.4.3 ``` ================== - Add ``app.pre_frozen`` state to properly handle startup signals in sub-applications. (`3237 <https://github.com/aio-libs/aiohttp/pull/3237>`_) ``` ### 3.4.2 ``` ================== - Fix ``iter_chunks`` type annotation (`3230 <https://github.com/aio-libs/aiohttp/pull/3230>`_) ``` ### 3.4.1 ``` ================== - Fix empty header parsing regression. (`3218 <https://github.com/aio-libs/aiohttp/pull/3218>`_) - Fix BaseRequest.raw_headers doc. (`3215 <https://github.com/aio-libs/aiohttp/pull/3215>`_) - Fix documentation building on ReadTheDocs (`3221 <https://github.com/aio-libs/aiohttp/pull/3221>`_) ``` ### 3.4.0 ``` ================== Features -------- - Add type hints (`3049 <https://github.com/aio-libs/aiohttp/pull/3049>`_) - Add ``raise_for_status`` request parameter (`3073 <https://github.com/aio-libs/aiohttp/pull/3073>`_) - Add type hints to HTTP client (`3092 <https://github.com/aio-libs/aiohttp/pull/3092>`_) - Minor server optimizations (`3095 <https://github.com/aio-libs/aiohttp/pull/3095>`_) - Preserve the cause when `HTTPException` is raised from another exception. (`3096 <https://github.com/aio-libs/aiohttp/pull/3096>`_) - Add `close_boundary` option in `MultipartWriter.write` method. Support streaming (`3104 <https://github.com/aio-libs/aiohttp/pull/3104>`_) - Added a ``remove_slash`` option to the ``normalize_path_middleware`` factory. (`3173 <https://github.com/aio-libs/aiohttp/pull/3173>`_) - The class `AbstractRouteDef` is importable from `aiohttp.web`. (`3183 <https://github.com/aio-libs/aiohttp/pull/3183>`_) Bugfixes -------- - Prevent double closing when client connection is released before the last ``data_received()`` callback. (`3031 <https://github.com/aio-libs/aiohttp/pull/3031>`_) - Make redirect with `normalize_path_middleware` work when using url encoded paths. (`3051 <https://github.com/aio-libs/aiohttp/pull/3051>`_) - Postpone web task creation to connection establishment. (`3052 <https://github.com/aio-libs/aiohttp/pull/3052>`_) - Fix ``sock_read`` timeout. (`3053 <https://github.com/aio-libs/aiohttp/pull/3053>`_) - 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. (`3054 <https://github.com/aio-libs/aiohttp/pull/3054>`_) - fix `UrlDispatcher` has no attribute `add_options`, add `web.options` (`3062 <https://github.com/aio-libs/aiohttp/pull/3062>`_) - correct filename in content-disposition with multipart body (`3064 <https://github.com/aio-libs/aiohttp/pull/3064>`_) - Many HTTP proxies has buggy keepalive support. Let's not reuse connection but close it after processing every response. (`3070 <https://github.com/aio-libs/aiohttp/pull/3070>`_) - raise 413 "Payload Too Large" rather than raising ValueError in request.post() Add helpful debug message to 413 responses (`3087 <https://github.com/aio-libs/aiohttp/pull/3087>`_) - Fix `StreamResponse` equality, now that they are `MutableMapping` objects. (`3100 <https://github.com/aio-libs/aiohttp/pull/3100>`_) - Fix server request objects comparison (`3116 <https://github.com/aio-libs/aiohttp/pull/3116>`_) - Do not hang on `206 Partial Content` response with `Content-Encoding: gzip` (`3123 <https://github.com/aio-libs/aiohttp/pull/3123>`_) - Fix timeout precondition checkers (`3145 <https://github.com/aio-libs/aiohttp/pull/3145>`_) Improved Documentation ---------------------- - Add a new FAQ entry that clarifies that you should not reuse response objects in middleware functions. (`3020 <https://github.com/aio-libs/aiohttp/pull/3020>`_) - Add FAQ section "Why is creating a ClientSession outside of an event loop dangerous?" (`3072 <https://github.com/aio-libs/aiohttp/pull/3072>`_) - Fix link to Rambler (`3115 <https://github.com/aio-libs/aiohttp/pull/3115>`_) - Fix TCPSite documentation on the Server Reference page. (`3146 <https://github.com/aio-libs/aiohttp/pull/3146>`_) - Fix documentation build configuration file for Windows. (`3147 <https://github.com/aio-libs/aiohttp/pull/3147>`_) - Remove no longer existing lingering_timeout parameter of Application.make_handler from documentation. (`3151 <https://github.com/aio-libs/aiohttp/pull/3151>`_) - Mention that ``app.make_handler`` is deprecated, recommend to use runners API instead. (`3157 <https://github.com/aio-libs/aiohttp/pull/3157>`_) Deprecations and Removals ------------------------- - Drop ``loop.current_task()`` from ``helpers.current_task()`` (`2826 <https://github.com/aio-libs/aiohttp/pull/2826>`_) - Drop ``reader`` parameter from ``request.multipart()``. (`3090 <https://github.com/aio-libs/aiohttp/pull/3090>`_) ``` ### 3.3.2 ``` ================== - Many HTTP proxies has buggy keepalive support. Let's not reuse connection but close it after processing every response. (`3070 <https://github.com/aio-libs/aiohttp/pull/3070>`_) - Provide vendor source files in tarball (`3076 <https://github.com/aio-libs/aiohttp/pull/3076>`_) ``` ### 3.3.1 ``` ================== - Fix ``sock_read`` timeout. (`3053 <https://github.com/aio-libs/aiohttp/pull/3053>`_) - 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. (`3054 <https://github.com/aio-libs/aiohttp/pull/3054>`_) ``` ### 3.3.0 ``` ================== Features -------- - Raise ``ConnectionResetError`` instead of ``CancelledError`` on trying to write to a closed stream. (`2499 <https://github.com/aio-libs/aiohttp/pull/2499>`_) - Implement ``ClientTimeout`` class and support socket read timeout. (`2768 <https://github.com/aio-libs/aiohttp/pull/2768>`_) - Enable logging when ``aiohttp.web`` is used as a program (`2956 <https://github.com/aio-libs/aiohttp/pull/2956>`_) - Add canonical property to resources (`2968 <https://github.com/aio-libs/aiohttp/pull/2968>`_) - Forbid reading response BODY after release (`2983 <https://github.com/aio-libs/aiohttp/pull/2983>`_) - Implement base protocol class to avoid a dependency from internal ``asyncio.streams.FlowControlMixin`` (`2986 <https://github.com/aio-libs/aiohttp/pull/2986>`_) - Cythonize ``helpers.reify``, 5% boost on macro benchmark (`2995 <https://github.com/aio-libs/aiohttp/pull/2995>`_) - Optimize HTTP parser (`3015 <https://github.com/aio-libs/aiohttp/pull/3015>`_) - Implement ``runner.addresses`` property. (`3036 <https://github.com/aio-libs/aiohttp/pull/3036>`_) - Use ``bytearray`` instead of a list of ``bytes`` in websocket reader. It improves websocket message reading a little. (`3039 <https://github.com/aio-libs/aiohttp/pull/3039>`_) - Remove heartbeat on closing connection on keepalive timeout. The used hack violates HTTP protocol. (`3041 <https://github.com/aio-libs/aiohttp/pull/3041>`_) - Limit websocket message size on reading to 4 MB by default. (`3045 <https://github.com/aio-libs/aiohttp/pull/3045>`_) Bugfixes -------- - Don't reuse a connection with the same URL but different proxy/TLS settings (`2981 <https://github.com/aio-libs/aiohttp/pull/2981>`_) - When parsing the Forwarded header, the optional port number is now preserved. (`3009 <https://github.com/aio-libs/aiohttp/pull/3009>`_) Improved Documentation ---------------------- - Make Change Log more visible in docs (`3029 <https://github.com/aio-libs/aiohttp/pull/3029>`_) - Make style and grammar improvements on the FAQ page. (`3030 <https://github.com/aio-libs/aiohttp/pull/3030>`_) - Document that signal handlers should be async functions since aiohttp 3.0 (`3032 <https://github.com/aio-libs/aiohttp/pull/3032>`_) Deprecations and Removals ------------------------- - Deprecate custom application's router. (`3021 <https://github.com/aio-libs/aiohttp/pull/3021>`_) Misc ---- - 3008, 3011 ``` ### 3.2.1 ``` ================== - Don't reuse a connection with the same URL but different proxy/TLS settings (`2981 <https://github.com/aio-libs/aiohttp/pull/2981>`_) ``` ### 3.2.0 ``` ================== Features -------- - Raise ``TooManyRedirects`` exception when client gets redirected too many times instead of returning last response. (`2631 <https://github.com/aio-libs/aiohttp/pull/2631>`_) - Extract route definitions into separate ``web_routedef.py`` file (`2876 <https://github.com/aio-libs/aiohttp/pull/2876>`_) - Raise an exception on request body reading after sending response. (`2895 <https://github.com/aio-libs/aiohttp/pull/2895>`_) - ClientResponse and RequestInfo now have real_url property, which is request url without fragment part being stripped (`2925 <https://github.com/aio-libs/aiohttp/pull/2925>`_) - Speed up connector limiting (`2937 <https://github.com/aio-libs/aiohttp/pull/2937>`_) - Added and links property for ClientResponse object (`2948 <https://github.com/aio-libs/aiohttp/pull/2948>`_) - Add ``request.config_dict`` for exposing nested applications data. (`2949 <https://github.com/aio-libs/aiohttp/pull/2949>`_) - Speed up HTTP headers serialization, server micro-benchmark runs 5% faster now. (`2957 <https://github.com/aio-libs/aiohttp/pull/2957>`_) - Apply assertions in debug mode only (`2966 <https://github.com/aio-libs/aiohttp/pull/2966>`_) Bugfixes -------- - expose property `app` for TestClient (`2891 <https://github.com/aio-libs/aiohttp/pull/2891>`_) - Call on_chunk_sent when write_eof takes as a param the last chunk (`2909 <https://github.com/aio-libs/aiohttp/pull/2909>`_) - A closing bracket was added to `__repr__` of resources (`2935 <https://github.com/aio-libs/aiohttp/pull/2935>`_) - Fix compression of FileResponse (`2942 <https://github.com/aio-libs/aiohttp/pull/2942>`_) - Fixes some bugs in the limit connection feature (`2964 <https://github.com/aio-libs/aiohttp/pull/2964>`_) Improved Documentation ---------------------- - Drop ``async_timeout`` usage from documentation for client API in favor of ``timeout`` parameter. (`2865 <https://github.com/aio-libs/aiohttp/pull/2865>`_) - Improve Gunicorn logging documentation (`2921 <https://github.com/aio-libs/aiohttp/pull/2921>`_) - Replace multipart writer `.serialize()` method with `.write()` in documentation. (`2965 <https://github.com/aio-libs/aiohttp/pull/2965>`_) Deprecations and Removals ------------------------- - Deprecate Application.make_handler() (`2938 <https://github.com/aio-libs/aiohttp/pull/2938>`_) Misc ---- - 2958 ``` ### 3.1.3 ``` ================== - Fix cancellation broadcast during DNS resolve (`2910 <https://github.com/aio-libs/aiohttp/pull/2910>`_) ``` ### 3.1.2 ``` ================== - Make ``LineTooLong`` exception more detailed about actual data size (`2863 <https://github.com/aio-libs/aiohttp/pull/2863>`_) - Call ``on_chunk_sent`` when write_eof takes as a param the last chunk (`2909 <https://github.com/aio-libs/aiohttp/pull/2909>`_) ``` ### 3.1.1 ``` ================== - Support *asynchronous iterators* (and *asynchronous generators* as well) in both client and server API as request / response BODY payloads. (`2802 <https://github.com/aio-libs/aiohttp/pull/2802>`_) ``` ### 3.1.0 ``` ================== 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 existing ``app.router.add_routes()``. The addition is very important because all *aiohttp* docs now uses ``app.add_routes()`` call in code snippets. 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 by ``app.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 -------- - Relax JSON content-type checking in the ``ClientResponse.json()`` to allow "application/xxx+json" instead of strict "application/json". (`2206 <https://github.com/aio-libs/aiohttp/pull/2206>`_) - Bump C HTTP parser to version 2.8 (`2730 <https://github.com/aio-libs/aiohttp/pull/2730>`_) - Accept a coroutine as an application factory in ``web.run_app`` and gunicorn worker. (`2739 <https://github.com/aio-libs/aiohttp/pull/2739>`_) - Implement application cleanup context (``app.cleanup_ctx`` property). (`2747 <https://github.com/aio-libs/aiohttp/pull/2747>`_) - Make ``writer.write_headers`` a coroutine. (`2762 <https://github.com/aio-libs/aiohttp/pull/2762>`_) - Add tracking signals for getting request/response bodies. (`2767 <https://github.com/aio-libs/aiohttp/pull/2767>`_) - Deprecate ClientResponseError.code in favor of .status to keep similarity with response classes. (`2781 <https://github.com/aio-libs/aiohttp/pull/2781>`_) - Implement ``app.add_routes()`` method. (`2787 <https://github.com/aio-libs/aiohttp/pull/2787>`_) - Implement ``web.static()`` and ``RouteTableDef.static()`` API. (`2795 <https://github.com/aio-libs/aiohttp/pull/2795>`_) - 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. (`2804 <https://github.com/aio-libs/aiohttp/pull/2804>`_) - Refactor ``ClientResponse`` constructor: make logically required constructor arguments mandatory, drop ``_post_init()`` method. (`2820 <https://github.com/aio-libs/aiohttp/pull/2820>`_) - Use ``app.add_routes()`` in server docs everywhere (`2830 <https://github.com/aio-libs/aiohttp/pull/2830>`_) - Websockets refactoring, all websocket writer methods are converted into coroutines. (`2836 <https://github.com/aio-libs/aiohttp/pull/2836>`_) - Provide ``Content-Range`` header for ``Range`` requests (`2844 <https://github.com/aio-libs/aiohttp/pull/2844>`_) Bugfixes -------- - Fix websocket client return EofStream. (`2784 <https://github.com/aio-libs/aiohttp/pull/2784>`_) - Fix websocket demo. (`2789 <https://github.com/aio-libs/aiohttp/pull/2789>`_) - 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`` (`2805 <https://github.com/aio-libs/aiohttp/pull/2805>`_) - Close a connection if an unexpected exception occurs while sending a request (`2827 <https://github.com/aio-libs/aiohttp/pull/2827>`_) - Fix firing DNS tracing events. (`2841 <https://github.com/aio-libs/aiohttp/pull/2841>`_) Improved Documentation ---------------------- - Document behavior when cchardet detects encodings that are unknown to Python. (`2732 <https://github.com/aio-libs/aiohttp/pull/2732>`_) - Add diagrams for tracing request life style. (`2748 <https://github.com/aio-libs/aiohttp/pull/2748>`_) - Drop removed functionality for passing ``StreamReader`` as data at client side. (`2793 <https://github.com/aio-libs/aiohttp/pull/2793>`_) ``` ### 3.0.9 ``` ================== - Close a connection if an unexpected exception occurs while sending a request (`2827 <https://github.com/aio-libs/aiohttp/pull/2827>`_) ``` ### 3.0.8 ``` ================== - Use ``asyncio.current_task()`` on Python 3.7 (`2825 <https://github.com/aio-libs/aiohttp/pull/2825>`_) ``` ### 3.0.7 ``` ================== - Fix SSL proxy support by client. (`2810 <https://github.com/aio-libs/aiohttp/pull/2810>`_) - Restore an imperative check in ``setup.py`` for python version. The check works in parallel to environment marker. As effect an error about unsupported Python versions is raised even on outdated systems with very old ``setuptools`` version installed. (`2813 <https://github.com/aio-libs/aiohttp/pull/2813>`_) ``` ### 3.0.6 ``` ================== - Add ``_reuse_address`` and ``_reuse_port`` to ``web_runner.TCPSite.__slots__``. (`2792 <https://github.com/aio-libs/aiohttp/pull/2792>`_) ``` ### 3.0.5 ``` ================== - Fix ``InvalidStateError`` on processing a sequence of two ``RequestHandler.data_received`` calls on web server. (`2773 <https://github.com/aio-libs/aiohttp/pull/2773>`_) ``` ### 3.0.4 ``` ================== - Fix ``IndexError`` in HTTP request handling by server. (`2752 <https://github.com/aio-libs/aiohttp/pull/2752>`_) - Fix MultipartWriter.append* no longer returning part/payload. (`2759 <https://github.com/aio-libs/aiohttp/pull/2759>`_) ``` ### 3.0.3 ``` ================== - Relax ``attrs`` dependency to minimal actually supported version 17.0.3 The change allows to avoid version conflicts with currently existing test tools. ``` ### 3.0.2 ``` ================== Security Fix ------------ - Prevent Windows absolute URLs in static files. Paths like ``/static/D:\path`` and ``/static/\\hostname\drive\path`` are forbidden. ``` ### 3.0.1 ``` ===== - Technical release for fixing distribution problems. ``` ### 3.0.0 ``` ================== Features -------- - Speed up the `PayloadWriter.write` method for large request bodies. (`2126 <https://github.com/aio-libs/aiohttp/pull/2126>`_) - StreamResponse and Response are now MutableMappings. (`2246 <https://github.com/aio-libs/aiohttp/pull/2246>`_) - ClientSession publishes a set of signals to track the HTTP request execution. (`2313 <https://github.com/aio-libs/aiohttp/pull/2313>`_) - Content-Disposition fast access in ClientResponse (`2455 <https://github.com/aio-libs/aiohttp/pull/2455>`_) - Added support to Flask-style decorators with class-based Views. (`2472 <https://github.com/aio-libs/aiohttp/pull/2472>`_) - Signal handlers (registered callbacks) should be coroutines. (`2480 <https://github.com/aio-libs/aiohttp/pull/2480>`_) - Support ``async with test_client.ws_connect(...)`` (`2525 <https://github.com/aio-libs/aiohttp/pull/2525>`_) - Introduce *site* and *application runner* as underlying API for `web.run_app` implementation. (`2530 <https://github.com/aio-libs/aiohttp/pull/2530>`_) - Only quote multipart boundary when necessary and sanitize input (`2544 <https://github.com/aio-libs/aiohttp/pull/2544>`_) - Make the `aiohttp.ClientResponse.get_encoding` method public with the processing of invalid charset while detecting content encoding. (`2549 <https://github.com/aio-libs/aiohttp/pull/2549>`_) - Add optional configurable per message compression for `ClientWebSocketResponse` and `WebSocketResponse`. (`2551 <https://github.com/aio-libs/aiohttp/pull/2551>`_) - Add hysteresis to `StreamReader` to prevent flipping between paused and resumed states too often. (`2555 <https://github.com/aio-libs/aiohttp/pull/2555>`_) - Support `.netrc` by `trust_env` (`2581 <https://github.com/aio-libs/aiohttp/pull/2581>`_) - Avoid to create a new resource when adding a route with the same name and path of the last added resource (`2586 <https://github.com/aio-libs/aiohttp/pull/2586>`_) - `MultipartWriter.boundary` is `str` now. (`2589 <https://github.com/aio-libs/aiohttp/pull/2589>`_) - Allow a custom port to be used by `TestServer` (and associated pytest fixtures) (`2613 <https://github.com/aio-libs/aiohttp/pull/2613>`_) - Add param access_log_class to web.run_app function (`2615 <https://github.com/aio-libs/aiohttp/pull/2615>`_) - Add ``ssl`` parameter to client API (`2626 <https://github.com/aio-libs/aiohttp/pull/2626>`_) - Fixes performance issue introduced by 2577. When there are no middlewares installed by the user, no additional and useless code is executed. (`2629 <https://github.com/aio-libs/aiohttp/pull/2629>`_) - Rename PayloadWriter to StreamWriter (`2654 <https://github.com/aio-libs/aiohttp/pull/2654>`_) - New options *reuse_port*, *reuse_address* are added to `run_app` and `TCPSite`. (`2679 <https://github.com/aio-libs/aiohttp/pull/2679>`_) - Use custom classes to pass client signals parameters (`2686 <https://github.com/aio-libs/aiohttp/pull/2686>`_) - Use ``attrs`` library for data classes, replace `namedtuple`. (`2690 <https://github.com/aio-libs/aiohttp/pull/2690>`_) - Pytest fixtures renaming, add ``aiohttp_`` prefix (`2578 <https://github.com/aio-libs/aiohttp/pull/2578>`_) - Add ``aiohttp-`` prefix for ``pytest-aiohttp`` command line parameters (`2578 <https://github.com/aio-libs/aiohttp/pull/2578>`_) Bugfixes -------- - Correctly process upgrade request from server to HTTP2. ``aiohttp`` does not support HTTP2 yet, the protocol is not upgraded but response is handled correctly. (`2277 <https://github.com/aio-libs/aiohttp/pull/2277>`_) - Fix ClientConnectorSSLError and ClientProxyConnectionError for proxy connector (`2408 <https://github.com/aio-libs/aiohttp/pull/2408>`_) - Fix connector convert OSError to ClientConnectorError (`2423 <https://github.com/aio-libs/aiohttp/pull/2423>`_) - Fix connection attempts for multiple dns hosts (`2424 <https://github.com/aio-libs/aiohttp/pull/2424>`_) - Fix writing to closed transport by raising `asyncio.CancelledError` (`2499 <https://github.com/aio-libs/aiohttp/pull/2499>`_) - Fix warning in `ClientSession.__del__` by stopping to try to close it. (`2523 <https://github.com/aio-libs/aiohttp/pull/2523>`_) - Fixed race-condition for iterating addresses from the DNSCache. (`2620 <https://github.com/aio-libs/aiohttp/pull/2620>`_) - Fix default value of `access_log_format` argument in `web.run_app` (`2649 <https://github.com/aio-libs/aiohttp/pull/2649>`_) - Freeze sub-application on adding to parent app (`2656 <https://github.com/aio-libs/aiohttp/pull/2656>`_) - Do percent encoding for `.url_for()` parameters (`2668 <https://github.com/aio-libs/aiohttp/pull/2668>`_) - Correctly process request start time and multiple request/response headers in access log extra (`2641 <https://github.com/aio-libs/aiohttp/pull/2641>`_) Improved Documentation ---------------------- - Improve tutorial docs, using `literalinclude` to link to the actual files. (`2396 <https://github.com/aio-libs/aiohttp/pull/2396>`_) - Small improvement docs: better example for file uploads. (`2401 <https://github.com/aio-libs/aiohttp/pull/2401>`_) - Rename `from_env` to `trust_env` in client reference. (`2451 <https://github.com/aio-libs/aiohttp/pull/2451>`_) - Fixed mistype in `Proxy Support` section where `trust_env` parameter was used in `session.get("http://python.org", trust_env=True)` method instead of aiohttp.ClientSession constructor as follows: `aiohttp.ClientSession(trust_env=True)`. (`2688 <https://github.com/aio-libs/aiohttp/pull/2688>`_) - Fix issue with unittest example not compiling in testing docs. (`2717 <https://github.com/aio-libs/aiohttp/pull/2717>`_) Deprecations and Removals ------------------------- - Simplify HTTP pipelining implementation (`2109 <https://github.com/aio-libs/aiohttp/pull/2109>`_) - Drop `StreamReaderPayload` and `DataQueuePayload`. (`2257 <https://github.com/aio-libs/aiohttp/pull/2257>`_) - Drop `md5` and `sha1` finger-prints (`2267 <https://github.com/aio-libs/aiohttp/pull/2267>`_) - Drop WSMessage.tp (`2321 <https://github.com/aio-libs/aiohttp/pull/2321>`_) - Drop Python 3.4 and Python 3.5.0, 3.5.1, 3.5.2. Minimal supported Python versions are 3.5.3 and 3.6.0. `yield from` is gone, use `async/await` syntax. (`2343 <https://github.com/aio-libs/aiohttp/pull/2343>`_) - Drop `aiohttp.Timeout` and use `async_timeout.timeout` instead. (`2348 <https://github.com/aio-libs/aiohttp/pull/2348>`_) - Drop `resolve` param from TCPConnector. (`2377 <https://github.com/aio-libs/aiohttp/pull/2377>`_) - Add DeprecationWarning for returning HTTPException (`2415 <https://github.com/aio-libs/aiohttp/pull/2415>`_) - `send_str()`, `send_bytes()`, `send_json()`, `ping()` and `pong()` are genuine async functions now. (`2475 <https://github.com/aio-libs/aiohttp/pull/2475>`_) - Drop undocumented `app.on_pre_signal` and `app.on_post_signal`. Signal handlers should be coroutines, support for regular functions is dropped. (`2480 <https://github.com/aio-libs/aiohttp/pull/2480>`_) - `StreamResponse.drain()` is not a part of public API anymore, just use `await StreamResponse.write()`. `StreamResponse.write` is converted to async function. (`2483 <https://github.com/aio-libs/aiohttp/pull/2483>`_) - Drop deprecated `slow_request_timeout` param and `**kwargs`` from `RequestHandler`. (`2500 <https://github.com/aio-libs/aiohttp/pull/2500>`_) - Drop deprecated `resource.url()`. (`2501 <https://github.com/aio-libs/aiohttp/pull/2501>`_) - Remove `%u` and `%l` format specifiers from access log format. (`2506 <https://github.com/aio-libs/aiohttp/pull/2506>`_) - Drop deprecated `request.GET` property. (`2547 <https://github.com/aio-libs/aiohttp/pull/2547>`_) - Simplify stream classes: drop `ChunksQueue` and `FlowControlChunksQueue`, merge `FlowControlStreamReader` functionality into `StreamReader`, drop `FlowControlStreamReader` name. (`2555 <https://github.com/aio-libs/aiohttp/pull/2555>`_) - Do not create a new resource on `router.add_get(..., allow_head=True)` (`2585 <https://github.com/aio-libs/aiohttp/pull/2585>`_) - Drop access to TCP tuning options from PayloadWriter and Response classes (`2604 <https://github.com/aio-libs/aiohttp/pull/2604>`_) - Drop deprecated `encoding` parameter from client API (`2606 <https://github.com/aio-libs/aiohttp/pull/2606>`_) - Deprecate ``verify_ssl``, ``ssl_context`` and ``fingerprint`` parameters in client API (`2626 <https://github.com/aio-libs/aiohttp/pull/2626>`_) - Get rid of the legacy class StreamWriter. (`2651 <https://github.com/aio-libs/aiohttp/pull/2651>`_) - Forbid non-strings in `resource.url_for()` parameters. (`2668 <https://github.com/aio-libs/aiohttp/pull/2668>`_) - Deprecate inheritance from ``ClientSession`` and ``web.Application`` and custom user attributes for ``ClientSession``, ``web.Request`` and ``web.Application`` (`2691 <https://github.com/aio-libs/aiohttp/pull/2691>`_) - Drop `resp = await aiohttp.request(...)` syntax for sake of `async with aiohttp.request(...) as resp:`. (`2540 <https://github.com/aio-libs/aiohttp/pull/2540>`_) - Forbid synchronous context managers for `ClientSession` and test server/client. (`2362 <https://github.com/aio-libs/aiohttp/pull/2362>`_) Misc ---- - 2552 ``` ### 2.3.10 ``` =================== - Fix 100% CPU usage on HTTP GET and websocket connection just after it (`1955 <https://github.com/aio-libs/aiohttp/pull/1955>`_) - Patch broken `ssl.match_hostname()` on Python<3.7 (`2674 <https://github.com/aio-libs/aiohttp/pull/2674>`_) ``` ### 2.3.9 ``` ================== - Fix colon handing in path for dynamic resources (`2670 <https://github.com/aio-libs/aiohttp/pull/2670>`_) ``` ### 2.3.8 ``` ================== - Do not use `yarl.unquote` internal function in aiohttp. Fix incorrectly unquoted path part in URL dispatcher (`2662 <https://github.com/aio-libs/aiohttp/pull/2662>`_) - Fix compatibility with `yarl==1.0.0` (`2662 <https://github.com/aio-libs/aiohttp/pull/2662>`_) ``` ### 2.3.7 ``` ================== - Fixed race-condition for iterating addresses from the DNSCache. (`2620 <https://github.com/aio-libs/aiohttp/pull/2620>`_) - Fix docstring for request.host (`2591 <https://github.com/aio-libs/aiohttp/pull/2591>`_) - Fix docstring for request.remote (`2592 <https://github.com/aio-libs/aiohttp/pull/2592>`_) ``` ### 2.3.6 ``` ================== - Correct `request.app` context (for handlers not just middlewares). (`2577 <https://github.com/aio-libs/aiohttp/pull/2577>`_) ``` ### 2.3.5 ``` ================== - Fix compatibility with `pytest` 3.3+ (`2565 <https://github.com/aio-libs/aiohttp/pull/2565>`_) ``` ### 2.3.4 ``` ================== - Make `request.app` point to proper application instance when using nested applications (with middlewares). (`2550 <https://github.com/aio-libs/aiohttp/pull/2550>`_) - Change base class of ClientConnectorSSLError to ClientSSLError from ClientConnectorError. (`2563 <https://github.com/aio-libs/aiohttp/pull/2563>`_) - Return client connection back to free pool on error in `connector.connect()`. (`2567 <https://github.com/aio-libs/aiohttp/pull/2567>`_) ``` ### 2.3.3 ``` ================== - Having a `;` in Response content type does not assume it contains a charset anymore. (`2197 <https://github.com/aio-libs/aiohttp/pull/2197>`_) - Use `getattr(asyncio, 'async')` for keeping compatibility with Python 3.7. (`2476 <https://github.com/aio-libs/aiohttp/pull/2476>`_) - Ignore `NotImplementedError` raised by `set_child_watcher` from `uvloop`. (`2491 <https://github.com/aio-libs/aiohttp/pull/2491>`_) - Fix warning in `ClientSession.__del__` by stopping to try to close it. (`2523 <https://github.com/aio-libs/aiohttp/pull/2523>`_) - Fixed typo's in Third-party libraries page. And added async-v20 to the list (`2510 <https://github.com/aio-libs/aiohttp/pull/2510>`_) ``` ### 2.3.2 ``` ================== - Fix passing client max size on cloning request obj. (`2385 <https://github.com/aio-libs/aiohttp/pull/2385>`_) - Fix ClientConnectorSSLError and ClientProxyConnectionError for proxy connector. (`2408 <https://github.com/aio-libs/aiohttp/pull/2408>`_) - Drop generated `_http_parser` shared object from tarball distribution. (`2414 <https://github.com/aio-libs/aiohttp/pull/2414>`_) - Fix connector convert OSError to ClientConnectorError. (`2423 <https://github.com/aio-libs/aiohttp/pull/2423>`_) - Fix connection attempts for multiple dns hosts. (`2424 <https://github.com/aio-libs/aiohttp/pull/2424>`_) - Fix ValueError for AF_INET6 sockets if a preexisting INET6 socket to the `aiohttp.web.run_app` function. (`2431 <https://github.com/aio-libs/aiohttp/pull/2431>`_) - `_SessionRequestContextManager` closes the session properly now. (`2441 <https://github.com/aio-libs/aiohttp/pull/2441>`_) - Rename `from_env` to `trust_env` in client reference. (`2451 <https://github.com/aio-libs/aiohttp/pull/2451>`_) ``` ### 2.3.1 ``` ================== - Relax attribute lookup in warning about old-styled middleware (`2340 <https://github.com
pyup-bot commented 2 years ago

Closing this in favor of #35