Skip to content

Latest commit

 

History

History
183 lines (154 loc) · 7.19 KB

CHANGES.rst

File metadata and controls

183 lines (154 loc) · 7.19 KB

Changelog

3.0.6 (2018-03-05)

  • Add _reuse_address and _reuse_port to web_runner.TCPSite.__slots__. (#2792)

3.0.5 (2018-02-27)

  • Fix InvalidStateError on processing a sequence of two RequestHandler.data_received calls on web server. (#2773)

3.0.4 (2018-02-26)

  • Fix IndexError in HTTP request handling by server. (#2752)
  • Fix MultipartWriter.append* no longer returning part/payload. (#2759)

3.0.3 (2018-02-25)

  • 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 (2018-02-23)

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 (2018-02-12)

Features

  • Speed up the PayloadWriter.write method for large request bodies. (#2126)
  • StreamResponse and Response are now MutableMappings. (#2246)
  • ClientSession publishes a set of signals to track the HTTP request execution. (#2313)
  • Content-Disposition fast access in ClientResponse (#2455)
  • Added support to Flask-style decorators with class-based Views. (#2472)
  • Signal handlers (registered callbacks) should be coroutines. (#2480)
  • Support async with test_client.ws_connect(...) (#2525)
  • Introduce site and application runner as underlying API for web.run_app implementation. (#2530)
  • Only quote multipart boundary when necessary and sanitize input (#2544)
  • Make the aiohttp.ClientResponse.get_encoding method public with the processing of invalid charset while detecting content encoding. (#2549)
  • Add optional configurable per message compression for ClientWebSocketResponse and WebSocketResponse. (#2551)
  • Add hysteresis to StreamReader to prevent flipping between paused and resumed states too often. (#2555)
  • Support .netrc by trust_env (#2581)
  • Avoid to create a new resource when adding a route with the same name and path of the last added resource (#2586)
  • MultipartWriter.boundary is str now. (#2589)
  • Allow a custom port to be used by TestServer (and associated pytest fixtures) (#2613)
  • Add param access_log_class to web.run_app function (#2615)
  • Add ssl parameter to client API (#2626)
  • Fixes performance issue introduced by #2577. When there are no middlewares installed by the user, no additional and useless code is executed. (#2629)
  • Rename PayloadWriter to StreamWriter (#2654)
  • New options reuse_port, reuse_address are added to run_app and TCPSite. (#2679)
  • Use custom classes to pass client signals parameters (#2686)
  • Use attrs library for data classes, replace namedtuple. (#2690)
  • Pytest fixtures renaming, add aiohttp_ prefix (#2578)
  • Add aiohttp- prefix for pytest-aiohttp command line parameters (#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)
  • Fix ClientConnectorSSLError and ClientProxyConnectionError for proxy connector (#2408)
  • Fix connector convert OSError to ClientConnectorError (#2423)
  • Fix connection attempts for multiple dns hosts (#2424)
  • Fix writing to closed transport by raising asyncio.CancelledError (#2499)
  • Fix warning in ClientSession.__del__ by stopping to try to close it. (#2523)
  • Fixed race-condition for iterating addresses from the DNSCache. (#2620)
  • Fix default value of access_log_format argument in web.run_app (#2649)
  • Freeze sub-application on adding to parent app (#2656)
  • Do percent encoding for .url_for() parameters (#2668)
  • Correctly process request start time and multiple request/response headers in access log extra (#2641)

Improved Documentation

  • Improve tutorial docs, using literalinclude to link to the actual files. (#2396)
  • Small improvement docs: better example for file uploads. (#2401)
  • Rename from_env to trust_env in client reference. (#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)
  • Fix issue with unittest example not compiling in testing docs. (#2717)

Deprecations and Removals

  • Simplify HTTP pipelining implementation (#2109)
  • Drop StreamReaderPayload and DataQueuePayload. (#2257)
  • Drop md5 and sha1 finger-prints (#2267)
  • Drop WSMessage.tp (#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)
  • Drop aiohttp.Timeout and use async_timeout.timeout instead. (#2348)
  • Drop resolve param from TCPConnector. (#2377)
  • Add DeprecationWarning for returning HTTPException (#2415)
  • send_str(), send_bytes(), send_json(), ping() and pong() are genuine async functions now. (#2475)
  • Drop undocumented app.on_pre_signal and app.on_post_signal. Signal handlers should be coroutines, support for regular functions is dropped. (#2480)
  • StreamResponse.drain() is not a part of public API anymore, just use await StreamResponse.write(). StreamResponse.write is converted to async function. (#2483)
  • Drop deprecated slow_request_timeout param and **kwargs from `RequestHandler. (#2500)
  • Drop deprecated resource.url(). (#2501)
  • Remove %u and %l format specifiers from access log format. (#2506)
  • Drop deprecated request.GET property. (#2547)
  • Simplify stream classes: drop ChunksQueue and FlowControlChunksQueue, merge FlowControlStreamReader functionality into StreamReader, drop FlowControlStreamReader name. (#2555)
  • Do not create a new resource on router.add_get(..., allow_head=True) (#2585)
  • Drop access to TCP tuning options from PayloadWriter and Response classes (#2604)
  • Drop deprecated encoding parameter from client API (#2606)
  • Deprecate verify_ssl, ssl_context and fingerprint parameters in client API (#2626)
  • Get rid of the legacy class StreamWriter. (#2651)
  • Forbid non-strings in resource.url_for() parameters. (#2668)
  • Deprecate inheritance from ClientSession and web.Application and custom user attributes for ClientSession, web.Request and web.Application (#2691)
  • Drop resp = await aiohttp.request(...) syntax for sake of async with aiohttp.request(...) as resp:. (#2540)
  • Forbid synchronous context managers for ClientSession and test server/client. (#2362)

Misc

  • #2552