Gestionnaire de fichiers - Editer - /opt/alt/python35/share/doc/alt-python35-aiohttp-3.0.8/HISTORY.rst
Arrière
2.3.10 (2018-02-02) =================== - Fix 100% CPU usage on HTTP GET and websocket connection just after it (#1955) - Patch broken `ssl.match_hostname()` on Python<3.7 (#2674) 2.3.9 (2018-01-16) ================== - Fix colon handing in path for dynamic resources (#2670) 2.3.8 (2018-01-15) ================== - Do not use `yarl.unquote` internal function in aiohttp. Fix incorrectly unquoted path part in URL dispatcher (#2662) - Fix compatibility with `yarl==1.0.0` (#2662) 2.3.7 (2017-12-27) ================== - Fixed race-condition for iterating addresses from the DNSCache. (#2620) - Fix docstring for request.host (#2591) - Fix docstring for request.remote (#2592) 2.3.6 (2017-12-04) ================== - Correct `request.app` context (for handlers not just middlewares). (#2577) 2.3.5 (2017-11-30) ================== - Fix compatibility with `pytest` 3.3+ (#2565) 2.3.4 (2017-11-29) ================== - Make `request.app` point to proper application instance when using nested applications (with middlewares). (#2550) - Change base class of ClientConnectorSSLError to ClientSSLError from ClientConnectorError. (#2563) - Return client connection back to free pool on error in `connector.connect()`. (#2567) 2.3.3 (2017-11-17) ================== - Having a `;` in Response content type does not assume it contains a charset anymore. (#2197) - Use `getattr(asyncio, 'async')` for keeping compatibility with Python 3.7. (#2476) - Ignore `NotImplementedError` raised by `set_child_watcher` from `uvloop`. (#2491) - Fix warning in `ClientSession.__del__` by stopping to try to close it. (#2523) - Fixed typo's in Third-party libraries page. And added async-v20 to the list (#2510) 2.3.2 (2017-11-01) ================== - Fix passing client max size on cloning request obj. (#2385) - Fix ClientConnectorSSLError and ClientProxyConnectionError for proxy connector. (#2408) - Drop generated `_http_parser` shared object from tarball distribution. (#2414) - Fix connector convert OSError to ClientConnectorError. (#2423) - Fix connection attempts for multiple dns hosts. (#2424) - Fix ValueError for AF_INET6 sockets if a preexisting INET6 socket to the `aiohttp.web.run_app` function. (#2431) - `_SessionRequestContextManager` closes the session properly now. (#2441) - Rename `from_env` to `trust_env` in client reference. (#2451) 2.3.1 (2017-10-18) ================== - Relax attribute lookup in warning about old-styled middleware (#2340) 2.3.0 (2017-10-18) ================== Features -------- - Add SSL related params to `ClientSession.request` (#1128) - Make enable_compression work on HTTP/1.0 (#1828) - Deprecate registering synchronous web handlers (#1993) - Switch to `multidict 3.0`. All HTTP headers preserve casing now but compared in case-insensitive way. (#1994) - Improvement for `normalize_path_middleware`. Added possibility to handle URLs with query string. (#1995) - Use towncrier for CHANGES.txt build (#1997) - Implement `trust_env=True` param in `ClientSession`. (#1998) - Added variable to customize proxy headers (#2001) - Implement `router.add_routes` and router decorators. (#2004) - Deprecated `BaseRequest.has_body` in favor of `BaseRequest.can_read_body` Added `BaseRequest.body_exists` attribute that stays static for the lifetime of the request (#2005) - Provide `BaseRequest.loop` attribute (#2024) - Make `_CoroGuard` awaitable and fix `ClientSession.close` warning message (#2026) - Responses to redirects without Location header are returned instead of raising a RuntimeError (#2030) - Added `get_client`, `get_server`, `setUpAsync` and `tearDownAsync` methods to AioHTTPTestCase (#2032) - Add automatically a SafeChildWatcher to the test loop (#2058) - add ability to disable automatic response decompression (#2110) - Add support for throttling DNS request, avoiding the requests saturation when there is a miss in the DNS cache and many requests getting into the connector at the same time. (#2111) - Use request for getting access log information instead of message/transport pair. Add `RequestBase.remote` property for accessing to IP of client initiated HTTP request. (#2123) - json() raises a ContentTypeError exception if the content-type does not meet the requirements instead of raising a generic ClientResponseError. (#2136) - Make the HTTP client able to return HTTP chunks when chunked transfer encoding is used. (#2150) - add `append_version` arg into `StaticResource.url` and `StaticResource.url_for` methods for getting an url with hash (version) of the file. (#2157) - Fix parsing the Forwarded header. * commas and semicolons are allowed inside quoted-strings; * empty forwarded-pairs (as in for=_1;;by=_2) are allowed; * non-standard parameters are allowed (although this alone could be easily done in the previous parser). (#2173) - Don't require ssl module to run. aiohttp does not require SSL to function. The code paths involved with SSL will only be hit upon SSL usage. Raise `RuntimeError` if HTTPS protocol is required but ssl module is not present. (#2221) - Accept coroutine fixtures in pytest plugin (#2223) - Call `shutdown_asyncgens` before event loop closing on Python 3.6. (#2227) - Speed up Signals when there are no receivers (#2229) - Raise `InvalidURL` instead of `ValueError` on fetches with invalid URL. (#2241) - Move `DummyCookieJar` into `cookiejar.py` (#2242) - `run_app`: Make `print=None` disable printing (#2260) - Support `brotli` encoding (generic-purpose lossless compression algorithm) (#2270) - Add server support for WebSockets Per-Message Deflate. Add client option to add deflate compress header in WebSockets request header. If calling ClientSession.ws_connect() with `compress=15` the client will support deflate compress negotiation. (#2273) - Support `verify_ssl`, `fingerprint`, `ssl_context` and `proxy_headers` by `client.ws_connect`. (#2292) - Added `aiohttp.ClientConnectorSSLError` when connection fails due `ssl.SSLError` (#2294) - `aiohttp.web.Application.make_handler` support `access_log_class` (#2315) - Build HTTP parser extension in non-strict mode by default. (#2332) Bugfixes -------- - Clear auth information on redirecting to other domain (#1699) - Fix missing app.loop on startup hooks during tests (#2060) - Fix issue with synchronous session closing when using `ClientSession` as an asynchronous context manager. (#2063) - Fix issue with `CookieJar` incorrectly expiring cookies in some edge cases. (#2084) - Force use of IPv4 during test, this will make tests run in a Docker container (#2104) - Warnings about unawaited coroutines now correctly point to the user's code. (#2106) - Fix issue with `IndexError` being raised by the `StreamReader.iter_chunks()` generator. (#2112) - Support HTTP 308 Permanent redirect in client class. (#2114) - Fix `FileResponse` sending empty chunked body on 304. (#2143) - Do not add `Content-Length: 0` to GET/HEAD/TRACE/OPTIONS requests by default. (#2167) - Fix parsing the Forwarded header according to RFC 7239. (#2170) - Securely determining remote/scheme/host #2171 (#2171) - Fix header name parsing, if name is split into multiple lines (#2183) - Handle session close during connection, `KeyError: <aiohttp.connector._TransportPlaceholder>` (#2193) - Fixes uncaught `TypeError` in `helpers.guess_filename` if `name` is not a string (#2201) - Raise OSError on async DNS lookup if resolved domain is an alias for another one, which does not have an A or CNAME record. (#2231) - Fix incorrect warning in `StreamReader`. (#2251) - Properly clone state of web request (#2284) - Fix C HTTP parser for cases when status line is split into different TCP packets. (#2311) - Fix `web.FileResponse` overriding user supplied Content-Type (#2317) Improved Documentation ---------------------- - Add a note about possible performance degradation in `await resp.text()` if charset was not provided by `Content-Type` HTTP header. Pass explicit encoding to solve it. (#1811) - Drop `disqus` widget from documentation pages. (#2018) - Add a graceful shutdown section to the client usage documentation. (#2039) - Document `connector_owner` parameter. (#2072) - Update the doc of web.Application (#2081) - Fix mistake about access log disabling. (#2085) - Add example usage of on_startup and on_shutdown signals by creating and disposing an aiopg connection engine. (#2131) - Document `encoded=True` for `yarl.URL`, it disables all yarl transformations. (#2198) - Document that all app's middleware factories are run for every request. (#2225) - Reflect the fact that default resolver is threaded one starting from aiohttp 1.1 (#2228) Deprecations and Removals ------------------------- - Drop deprecated `Server.finish_connections` (#2006) - Drop %O format from logging, use %b instead. Drop %e format from logging, environment variables are not supported anymore. (#2123) - Drop deprecated secure_proxy_ssl_header support (#2171) - Removed TimeService in favor of simple caching. TimeService also had a bug where it lost about 0.5 seconds per second. (#2176) - Drop unused response_factory from static files API (#2290) Misc ---- - #2013, #2014, #2048, #2094, #2149, #2187, #2214, #2225, #2243, #2248 2.2.5 (2017-08-03) ================== - Don't raise deprecation warning on `loop.run_until_complete(client.close())` (#2065) 2.2.4 (2017-08-02) ================== - Fix issue with synchronous session closing when using ClientSession as an asynchronous context manager. (#2063) 2.2.3 (2017-07-04) ================== - Fix `_CoroGuard` for python 3.4 2.2.2 (2017-07-03) ================== - Allow `await session.close()` along with `yield from session.close()` 2.2.1 (2017-07-02) ================== - Relax `yarl` requirement to 0.11+ - Backport #2026: `session.close` *is* a coroutine (#2029) 2.2.0 (2017-06-20) ================== - Add doc for add_head, update doc for add_get. (#1944) - Fixed consecutive calls for `Response.write_eof`. - Retain method attributes (e.g. :code:`__doc__`) when registering synchronous handlers for resources. (#1953) - Added signal TERM handling in `run_app` to gracefully exit (#1932) - Fix websocket issues caused by frame fragmentation. (#1962) - Raise RuntimeError is you try to set the Content Length and enable chunked encoding at the same time (#1941) - Small update for `unittest_run_loop` - Use CIMultiDict for ClientRequest.skip_auto_headers (#1970) - Fix wrong startup sequence: test server and `run_app()` are not raise `DeprecationWarning` now (#1947) - Make sure cleanup signal is sent if startup signal has been sent (#1959) - Fixed server keep-alive handler, could cause 100% cpu utilization (#1955) - Connection can be destroyed before response get processed if `await aiohttp.request(..)` is used (#1981) - MultipartReader does not work with -OO (#1969) - Fixed `ClientPayloadError` with blank `Content-Encoding` header (#1931) - Support `deflate` encoding implemented in `httpbin.org/deflate` (#1918) - Fix BadStatusLine caused by extra `CRLF` after `POST` data (#1792) - Keep a reference to `ClientSession` in response object (#1985) - Deprecate undocumented `app.on_loop_available` signal (#1978) 2.1.0 (2017-05-26) ================== - Added support for experimental `async-tokio` event loop written in Rust https://github.com/PyO3/tokio - Write to transport ``\r\n`` before closing after keepalive timeout, otherwise client can not detect socket disconnection. (#1883) - Only call `loop.close` in `run_app` if the user did *not* supply a loop. Useful for allowing clients to specify their own cleanup before closing the asyncio loop if they wish to tightly control loop behavior - Content disposition with semicolon in filename (#917) - Added `request_info` to response object and `ClientResponseError`. (#1733) - Added `history` to `ClientResponseError`. (#1741) - Allow to disable redirect url re-quoting (#1474) - Handle RuntimeError from transport (#1790) - Dropped "%O" in access logger (#1673) - Added `args` and `kwargs` to `unittest_run_loop`. Useful with other decorators, for example `@patch`. (#1803) - Added `iter_chunks` to response.content object. (#1805) - Avoid creating TimerContext when there is no timeout to allow compatibility with Tornado. (#1817) (#1180) - Add `proxy_from_env` to `ClientRequest` to read from environment variables. (#1791) - Add DummyCookieJar helper. (#1830) - Fix assertion errors in Python 3.4 from noop helper. (#1847) - Do not unquote `+` in match_info values (#1816) - Use Forwarded, X-Forwarded-Scheme and X-Forwarded-Host for better scheme and host resolution. (#1134) - Fix sub-application middlewares resolution order (#1853) - Fix applications comparison (#1866) - Fix static location in index when prefix is used (#1662) - Make test server more reliable (#1896) - Extend list of web exceptions, add HTTPUnprocessableEntity, HTTPFailedDependency, HTTPInsufficientStorage status codes (#1920) 2.0.7 (2017-04-12) ================== - Fix *pypi* distribution - Fix exception description (#1807) - Handle socket error in FileResponse (#1773) - Cancel websocket heartbeat on close (#1793) 2.0.6 (2017-04-04) ================== - Keeping blank values for `request.post()` and `multipart.form()` (#1765) - TypeError in data_received of ResponseHandler (#1770) - Fix ``web.run_app`` not to bind to default host-port pair if only socket is passed (#1786) 2.0.5 (2017-03-29) ================== - Memory leak with aiohttp.request (#1756) - Disable cleanup closed ssl transports by default. - Exception in request handling if the server responds before the body is sent (#1761) 2.0.4 (2017-03-27) ================== - Memory leak with aiohttp.request (#1756) - Encoding is always UTF-8 in POST data (#1750) - Do not add "Content-Disposition" header by default (#1755) 2.0.3 (2017-03-24) ================== - Call https website through proxy will cause error (#1745) - Fix exception on multipart/form-data post if content-type is not set (#1743) 2.0.2 (2017-03-21) ================== - Fixed Application.on_loop_available signal (#1739) - Remove debug code 2.0.1 (2017-03-21) ================== - Fix allow-head to include name on route (#1737) - Fixed AttributeError in WebSocketResponse.can_prepare (#1736) 2.0.0 (2017-03-20) ================== - Added `json` to `ClientSession.request()` method (#1726) - Added session's `raise_for_status` parameter, automatically calls raise_for_status() on any request. (#1724) - `response.json()` raises `ClientReponseError` exception if response's content type does not match (#1723) - Cleanup timer and loop handle on any client exception. - Deprecate `loop` parameter for Application's constructor `2.0.0rc1` (2017-03-15) ======================= - Properly handle payload errors (#1710) - Added `ClientWebSocketResponse.get_extra_info()` (#1717) - It is not possible to combine Transfer-Encoding and chunked parameter, same for compress and Content-Encoding (#1655) - Connector's `limit` parameter indicates total concurrent connections. New `limit_per_host` added, indicates total connections per endpoint. (#1601) - Use url's `raw_host` for name resolution (#1685) - Change `ClientResponse.url` to `yarl.URL` instance (#1654) - Add max_size parameter to web.Request reading methods (#1133) - Web Request.post() stores data in temp files (#1469) - Add the `allow_head=True` keyword argument for `add_get` (#1618) - `run_app` and the Command Line Interface now support serving over Unix domain sockets for faster inter-process communication. - `run_app` now supports passing a preexisting socket object. This can be useful e.g. for socket-based activated applications, when binding of a socket is done by the parent process. - Implementation for Trailer headers parser is broken (#1619) - Fix FileResponse to not fall on bad request (range out of file size) - Fix FileResponse to correct stream video to Chromes - Deprecate public low-level api (#1657) - Deprecate `encoding` parameter for ClientSession.request() method - Dropped aiohttp.wsgi (#1108) - Dropped `version` from ClientSession.request() method - Dropped websocket version 76 support (#1160) - Dropped: `aiohttp.protocol.HttpPrefixParser` (#1590) - Dropped: Servers response's `.started`, `.start()` and `.can_start()` method (#1591) - Dropped: Adding `sub app` via `app.router.add_subapp()` is deprecated use `app.add_subapp()` instead (#1592) - Dropped: `Application.finish()` and `Application.register_on_finish()` (#1602) - Dropped: `web.Request.GET` and `web.Request.POST` - Dropped: aiohttp.get(), aiohttp.options(), aiohttp.head(), aiohttp.post(), aiohttp.put(), aiohttp.patch(), aiohttp.delete(), and aiohttp.ws_connect() (#1593) - Dropped: `aiohttp.web.WebSocketResponse.receive_msg()` (#1605) - Dropped: `ServerHttpProtocol.keep_alive_timeout` attribute and `keep-alive`, `keep_alive_on`, `timeout`, `log` constructor parameters (#1606) - Dropped: `TCPConnector's`` `.resolve`, `.resolved_hosts`, `.clear_resolved_hosts()` attributes and `resolve` constructor parameter (#1607) - Dropped `ProxyConnector` (#1609) 1.3.5 (2017-03-16) ================== - Fixed None timeout support (#1720) 1.3.4 (2017-03-14) ================== - Revert timeout handling in client request - Fix StreamResponse representation after eof - Fix file_sender to not fall on bad request (range out of file size) - Fix file_sender to correct stream video to Chromes - Fix NotImplementedError server exception (#1703) - Clearer error message for URL without a host name. (#1691) - Silence deprecation warning in __repr__ (#1690) - IDN + HTTPS = `ssl.CertificateError` (#1685) 1.3.3 (2017-02-19) ================== - Fixed memory leak in time service (#1656) 1.3.2 (2017-02-16) ================== - Awaiting on WebSocketResponse.send_* does not work (#1645) - Fix multiple calls to client ws_connect when using a shared header dict (#1643) - Make CookieJar.filter_cookies() accept plain string parameter. (#1636) 1.3.1 (2017-02-09) ================== - Handle CLOSING in WebSocketResponse.__anext__ - Fixed AttributeError 'drain' for server websocket handler (#1613) 1.3.0 (2017-02-08) ================== - Multipart writer validates the data on append instead of on a request send (#920) - Multipart reader accepts multipart messages with or without their epilogue to consistently handle valid and legacy behaviors (#1526) (#1581) - Separate read + connect + request timeouts # 1523 - Do not swallow Upgrade header (#1587) - Fix polls demo run application (#1487) - Ignore unknown 1XX status codes in client (#1353) - Fix sub-Multipart messages missing their headers on serialization (#1525) - Do not use readline when reading the content of a part in the multipart reader (#1535) - Add optional flag for quoting `FormData` fields (#916) - 416 Range Not Satisfiable if requested range end > file size (#1588) - Having a `:` or `@` in a route does not work (#1552) - Added `receive_timeout` timeout for websocket to receive complete message. (#1325) - Added `heartbeat` parameter for websocket to automatically send `ping` message. (#1024) (#777) - Remove `web.Application` dependency from `web.UrlDispatcher` (#1510) - Accepting back-pressure from slow websocket clients (#1367) - Do not pause transport during set_parser stage (#1211) - Lingering close does not terminate before timeout (#1559) - `setsockopt` may raise `OSError` exception if socket is closed already (#1595) - Lots of CancelledError when requests are interrupted (#1565) - Allow users to specify what should happen to decoding errors when calling a responses `text()` method (#1542) - Back port std module `http.cookies` for python3.4.2 (#1566) - Maintain url's fragment in client response (#1314) - Allow concurrently close WebSocket connection (#754) - Gzipped responses with empty body raises ContentEncodingError (#609) - Return 504 if request handle raises TimeoutError. - Refactor how we use keep-alive and close lingering timeouts. - Close response connection if we can not consume whole http message during client response release - Abort closed ssl client transports, broken servers can keep socket open un-limit time (#1568) - Log warning instead of `RuntimeError` is websocket connection is closed. - Deprecated: `aiohttp.protocol.HttpPrefixParser` will be removed in 1.4 (#1590) - Deprecated: Servers response's `.started`, `.start()` and `.can_start()` method will be removed in 1.4 (#1591) - Deprecated: Adding `sub app` via `app.router.add_subapp()` is deprecated use `app.add_subapp()` instead, will be removed in 1.4 (#1592) - Deprecated: aiohttp.get(), aiohttp.options(), aiohttp.head(), aiohttp.post(), aiohttp.put(), aiohttp.patch(), aiohttp.delete(), and aiohttp.ws_connect() will be removed in 1.4 (#1593) - Deprecated: `Application.finish()` and `Application.register_on_finish()` will be removed in 1.4 (#1602) 1.2.0 (2016-12-17) ================== - Extract `BaseRequest` from `web.Request`, introduce `web.Server` (former `RequestHandlerFactory`), introduce new low-level web server which is not coupled with `web.Application` and routing (#1362) - Make `TestServer.make_url` compatible with `yarl.URL` (#1389) - Implement range requests for static files (#1382) - Support task attribute for StreamResponse (#1410) - Drop `TestClient.app` property, use `TestClient.server.app` instead (BACKWARD INCOMPATIBLE) - Drop `TestClient.handler` property, use `TestClient.server.handler` instead (BACKWARD INCOMPATIBLE) - `TestClient.server` property returns a test server instance, was `asyncio.AbstractServer` (BACKWARD INCOMPATIBLE) - Follow gunicorn's signal semantics in `Gunicorn[UVLoop]WebWorker` (#1201) - Call worker_int and worker_abort callbacks in `Gunicorn[UVLoop]WebWorker` (#1202) - Has functional tests for client proxy (#1218) - Fix bugs with client proxy target path and proxy host with port (#1413) - Fix bugs related to the use of unicode hostnames (#1444) - Preserve cookie quoting/escaping (#1453) - FileSender will send gzipped response if gzip version available (#1426) - Don't override `Content-Length` header in `web.Response` if no body was set (#1400) - Introduce `router.post_init()` for solving (#1373) - Fix raise error in case of multiple calls of `TimeServive.stop()` - Allow to raise web exceptions on router resolving stage (#1460) - Add a warning for session creation outside of coroutine (#1468) - Avoid a race when application might start accepting incoming requests but startup signals are not processed yet e98e8c6 - Raise a `RuntimeError` when trying to change the status of the HTTP response after the headers have been sent (#1480) - Fix bug with https proxy acquired cleanup (#1340) - Use UTF-8 as the default encoding for multipart text parts (#1484) 1.1.6 (2016-11-28) ================== - Fix `BodyPartReader.read_chunk` bug about returns zero bytes before `EOF` (#1428) 1.1.5 (2016-11-16) ================== - Fix static file serving in fallback mode (#1401) 1.1.4 (2016-11-14) ================== - Make `TestServer.make_url` compatible with `yarl.URL` (#1389) - Generate informative exception on redirects from server which does not provide redirection headers (#1396) 1.1.3 (2016-11-10) ================== - Support *root* resources for sub-applications (#1379) 1.1.2 (2016-11-08) ================== - Allow starting variables with an underscore (#1379) - Properly process UNIX sockets by gunicorn worker (#1375) - Fix ordering for `FrozenList` - Don't propagate pre and post signals to sub-application (#1377) 1.1.1 (2016-11-04) ================== - Fix documentation generation (#1120) 1.1.0 (2016-11-03) ================== - Drop deprecated `WSClientDisconnectedError` (BACKWARD INCOMPATIBLE) - Use `yarl.URL` in client API. The change is 99% backward compatible but `ClientResponse.url` is an `yarl.URL` instance now. (#1217) - Close idle keep-alive connections on shutdown (#1222) - Modify regex in AccessLogger to accept underscore and numbers (#1225) - Use `yarl.URL` in web server API. `web.Request.rel_url` and `web.Request.url` are added. URLs and templates are percent-encoded now. (#1224) - Accept `yarl.URL` by server redirections (#1278) - Return `yarl.URL` by `.make_url()` testing utility (#1279) - Properly format IPv6 addresses by `aiohttp.web.run_app` (#1139) - Use `yarl.URL` by server API (#1288) * Introduce `resource.url_for()`, deprecate `resource.url()`. * Implement `StaticResource`. * Inherit `SystemRoute` from `AbstractRoute` * Drop old-style routes: `Route`, `PlainRoute`, `DynamicRoute`, `StaticRoute`, `ResourceAdapter`. - Revert `resp.url` back to `str`, introduce `resp.url_obj` (#1292) - Raise ValueError if BasicAuth login has a ":" character (#1307) - Fix bug when ClientRequest send payload file with opened as open('filename', 'r+b') (#1306) - Enhancement to AccessLogger (pass *extra* dict) (#1303) - Show more verbose message on import errors (#1319) - Added save and load functionality for `CookieJar` (#1219) - Added option on `StaticRoute` to follow symlinks (#1299) - Force encoding of `application/json` content type to utf-8 (#1339) - Fix invalid invocations of `errors.LineTooLong` (#1335) - Websockets: Stop `async for` iteration when connection is closed (#1144) - Ensure TestClient HTTP methods return a context manager (#1318) - Raise `ClientDisconnectedError` to `FlowControlStreamReader` read function if `ClientSession` object is closed by client when reading data. (#1323) - Document deployment without `Gunicorn` (#1120) - Add deprecation warning for MD5 and SHA1 digests when used for fingerprint of site certs in TCPConnector. (#1186) - Implement sub-applications (#1301) - Don't inherit `web.Request` from `dict` but implement `MutableMapping` protocol. - Implement frozen signals - Don't inherit `web.Application` from `dict` but implement `MutableMapping` protocol. - Support freezing for web applications - Accept access_log parameter in `web.run_app`, use `None` to disable logging - Don't flap `tcp_cork` and `tcp_nodelay` in regular request handling. `tcp_nodelay` is still enabled by default. - Improve performance of web server by removing premature computing of Content-Type if the value was set by `web.Response` constructor. While the patch boosts speed of trivial `web.Response(text='OK', content_type='text/plain)` very well please don't expect significant boost of your application -- a couple DB requests and business logic is still the main bottleneck. - Boost performance by adding a custom time service (#1350) - Extend `ClientResponse` with `content_type` and `charset` properties like in `web.Request`. (#1349) - Disable aiodns by default (#559) - Don't flap `tcp_cork` in client code, use TCP_NODELAY mode by default. - Implement `web.Request.clone()` (#1361) 1.0.5 (2016-10-11) ================== - Fix StreamReader._read_nowait to return all available data up to the requested amount (#1297) 1.0.4 (2016-09-22) ================== - Fix FlowControlStreamReader.read_nowait so that it checks whether the transport is paused (#1206) 1.0.2 (2016-09-22) ================== - Make CookieJar compatible with 32-bit systems (#1188) - Add missing `WSMsgType` to `web_ws.__all__`, see (#1200) - Fix `CookieJar` ctor when called with `loop=None` (#1203) - Fix broken upper-casing in wsgi support (#1197) 1.0.1 (2016-09-16) ================== - Restore `aiohttp.web.MsgType` alias for `aiohttp.WSMsgType` for sake of backward compatibility (#1178) - Tune alabaster schema. - Use `text/html` content type for displaying index pages by static file handler. - Fix `AssertionError` in static file handling (#1177) - Fix access log formats `%O` and `%b` for static file handling - Remove `debug` setting of GunicornWorker, use `app.debug` to control its debug-mode instead 1.0.0 (2016-09-16) ================== - Change default size for client session's connection pool from unlimited to 20 (#977) - Add IE support for cookie deletion. (#994) - Remove deprecated `WebSocketResponse.wait_closed` method (BACKWARD INCOMPATIBLE) - Remove deprecated `force` parameter for `ClientResponse.close` method (BACKWARD INCOMPATIBLE) - Avoid using of mutable CIMultiDict kw param in make_mocked_request (#997) - Make WebSocketResponse.close a little bit faster by avoiding new task creating just for timeout measurement - Add `proxy` and `proxy_auth` params to `client.get()` and family, deprecate `ProxyConnector` (#998) - Add support for websocket send_json and receive_json, synchronize server and client API for websockets (#984) - Implement router shourtcuts for most useful HTTP methods, use `app.router.add_get()`, `app.router.add_post()` etc. instead of `app.router.add_route()` (#986) - Support SSL connections for gunicorn worker (#1003) - Move obsolete examples to legacy folder - Switch to multidict 2.0 and title-cased strings (#1015) - `{FOO}e` logger format is case-sensitive now - Fix logger report for unix socket 8e8469b - Rename aiohttp.websocket to aiohttp._ws_impl - Rename aiohttp.MsgType tp aiohttp.WSMsgType - Introduce aiohttp.WSMessage officially - Rename Message -> WSMessage - Remove deprecated decode param from resp.read(decode=True) - Use 5min default client timeout (#1028) - Relax HTTP method validation in UrlDispatcher (#1037) - Pin minimal supported asyncio version to 3.4.2+ (`loop.is_close()` should be present) - Remove aiohttp.websocket module (BACKWARD INCOMPATIBLE) Please use high-level client and server approaches - Link header for 451 status code is mandatory - Fix test_client fixture to allow multiple clients per test (#1072) - make_mocked_request now accepts dict as headers (#1073) - Add Python 3.5.2/3.6+ compatibility patch for async generator protocol change (#1082) - Improvement test_client can accept instance object (#1083) - Simplify ServerHttpProtocol implementation (#1060) - Add a flag for optional showing directory index for static file handling (#921) - Define `web.Application.on_startup()` signal handler (#1103) - Drop ChunkedParser and LinesParser (#1111) - Call `Application.startup` in GunicornWebWorker (#1105) - Fix client handling hostnames with 63 bytes when a port is given in the url (#1044) - Implement proxy support for ClientSession.ws_connect (#1025) - Return named tuple from WebSocketResponse.can_prepare (#1016) - Fix access_log_format in `GunicornWebWorker` (#1117) - Setup Content-Type to application/octet-stream by default (#1124) - Deprecate debug parameter from app.make_handler(), use `Application(debug=True)` instead (#1121) - Remove fragment string in request path (#846) - Use aiodns.DNSResolver.gethostbyname() if available (#1136) - Fix static file sending on uvloop when sendfile is available (#1093) - Make prettier urls if query is empty dict (#1143) - Fix redirects for HEAD requests (#1147) - Default value for `StreamReader.read_nowait` is -1 from now (#1150) - `aiohttp.StreamReader` is not inherited from `asyncio.StreamReader` from now (BACKWARD INCOMPATIBLE) (#1150) - Streams documentation added (#1150) - Add `multipart` coroutine method for web Request object (#1067) - Publish ClientSession.loop property (#1149) - Fix static file with spaces (#1140) - Fix piling up asyncio loop by cookie expiration callbacks (#1061) - Drop `Timeout` class for sake of `async_timeout` external library. `aiohttp.Timeout` is an alias for `async_timeout.timeout` - `use_dns_cache` parameter of `aiohttp.TCPConnector` is `True` by default (BACKWARD INCOMPATIBLE) (#1152) - `aiohttp.TCPConnector` uses asynchronous DNS resolver if available by default (BACKWARD INCOMPATIBLE) (#1152) - Conform to RFC3986 - do not include url fragments in client requests (#1174) - Drop `ClientSession.cookies` (BACKWARD INCOMPATIBLE) (#1173) - Refactor `AbstractCookieJar` public API (BACKWARD INCOMPATIBLE) (#1173) - Fix clashing cookies with have the same name but belong to different domains (BACKWARD INCOMPATIBLE) (#1125) - Support binary Content-Transfer-Encoding (#1169) 0.22.5 (08-02-2016) =================== - Pin miltidict version to >=1.2.2 0.22.3 (07-26-2016) =================== - Do not filter cookies if unsafe flag provided (#1005) 0.22.2 (07-23-2016) =================== - Suppress CancelledError when Timeout raises TimeoutError (#970) - Don't expose `aiohttp.__version__` - Add unsafe parameter to CookieJar (#968) - Use unsafe cookie jar in test client tools - Expose aiohttp.CookieJar name 0.22.1 (07-16-2016) =================== - Large cookie expiration/max-age does not break an event loop from now (fixes (#967)) 0.22.0 (07-15-2016) =================== - Fix bug in serving static directory (#803) - Fix command line arg parsing (#797) - Fix a documentation chapter about cookie usage (#790) - Handle empty body with gzipped encoding (#758) - Support 451 Unavailable For Legal Reasons http status (#697) - Fix Cookie share example and few small typos in docs (#817) - UrlDispatcher.add_route with partial coroutine handler (#814) - Optional support for aiodns (#728) - Add ServiceRestart and TryAgainLater websocket close codes (#828) - Fix prompt message for `web.run_app` (#832) - Allow to pass None as a timeout value to disable timeout logic (#834) - Fix leak of connection slot during connection error (#835) - Gunicorn worker with uvloop support `aiohttp.worker.GunicornUVLoopWebWorker` (#878) - Don't send body in response to HEAD request (#838) - Skip the preamble in MultipartReader (#881) - Implement BasicAuth decode classmethod. (#744) - Don't crash logger when transport is None (#889) - Use a create_future compatibility wrapper instead of creating Futures directly (#896) - Add test utilities to aiohttp (#902) - Improve Request.__repr__ (#875) - Skip DNS resolving if provided host is already an ip address (#874) - Add headers to ClientSession.ws_connect (#785) - Document that server can send pre-compressed data (#906) - Don't add Content-Encoding and Transfer-Encoding if no body (#891) - Add json() convenience methods to websocket message objects (#897) - Add client_resp.raise_for_status() (#908) - Implement cookie filter (#799) - Include an example of middleware to handle error pages (#909) - Fix error handling in StaticFileMixin (#856) - Add mocked request helper (#900) - Fix empty ALLOW Response header for cls based View (#929) - Respect CONNECT method to implement a proxy server (#847) - Add pytest_plugin (#914) - Add tutorial - Add backlog option to support more than 128 (default value in "create_server" function) concurrent connections (#892) - Allow configuration of header size limits (#912) - Separate sending file logic from StaticRoute dispatcher (#901) - Drop deprecated share_cookies connector option (BACKWARD INCOMPATIBLE) - Drop deprecated support for tuple as auth parameter. Use aiohttp.BasicAuth instead (BACKWARD INCOMPATIBLE) - Remove deprecated `request.payload` property, use `content` instead. (BACKWARD INCOMPATIBLE) - Drop all mentions about api changes in documentation for versions older than 0.16 - Allow to override default cookie jar (#963) - Add manylinux wheel builds - Dup a socket for sendfile usage (#964) 0.21.6 (05-05-2016) =================== - Drop initial query parameters on redirects (#853) 0.21.5 (03-22-2016) =================== - Fix command line arg parsing (#797) 0.21.4 (03-12-2016) =================== - Fix ResourceAdapter: don't add method to allowed if resource is not match (#826) - Fix Resource: append found method to returned allowed methods 0.21.2 (02-16-2016) =================== - Fix a regression: support for handling ~/path in static file routes was broken (#782) 0.21.1 (02-10-2016) =================== - Make new resources classes public (#767) - Add `router.resources()` view - Fix cmd-line parameter names in doc 0.21.0 (02-04-2016) =================== - Introduce on_shutdown signal (#722) - Implement raw input headers (#726) - Implement web.run_app utility function (#734) - Introduce on_cleanup signal - Deprecate Application.finish() / Application.register_on_finish() in favor of on_cleanup. - Get rid of bare aiohttp.request(), aiohttp.get() and family in docs (#729) - Deprecate bare aiohttp.request(), aiohttp.get() and family (#729) - Refactor keep-alive support (#737): - Enable keepalive for HTTP 1.0 by default - Disable it for HTTP 0.9 (who cares about 0.9, BTW?) - For keepalived connections - Send `Connection: keep-alive` for HTTP 1.0 only - don't send `Connection` header for HTTP 1.1 - For non-keepalived connections - Send `Connection: close` for HTTP 1.1 only - don't send `Connection` header for HTTP 1.0 - Add version parameter to ClientSession constructor, deprecate it for session.request() and family (#736) - Enable access log by default (#735) - Deprecate app.router.register_route() (the method was not documented intentionally BTW). - Deprecate app.router.named_routes() in favor of app.router.named_resources() - route.add_static accepts pathlib.Path now (#743) - Add command line support: `$ python -m aiohttp.web package.main` (#740) - FAQ section was added to docs. Enjoy and fill free to contribute new topics - Add async context manager support to ClientSession - Document ClientResponse's host, method, url properties - Use CORK/NODELAY in client API (#748) - ClientSession.close and Connector.close are coroutines now - Close client connection on exception in ClientResponse.release() - Allow to read multipart parts without content-length specified (#750) - Add support for unix domain sockets to gunicorn worker (#470) - Add test for default Expect handler (#601) - Add the first demo project - Rename `loader` keyword argument in `web.Request.json` method. (#646) - Add local socket binding for TCPConnector (#678) 0.20.2 (01-07-2016) =================== - Enable use of `await` for a class based view (#717) - Check address family to fill wsgi env properly (#718) - Fix memory leak in headers processing (thanks to Marco Paolini) (#723) 0.20.1 (12-30-2015) =================== - Raise RuntimeError is Timeout context manager was used outside of task context. - Add number of bytes to stream.read_nowait (#700) - Use X-FORWARDED-PROTO for wsgi.url_scheme when available 0.20.0 (12-28-2015) =================== - Extend list of web exceptions, add HTTPMisdirectedRequest, HTTPUpgradeRequired, HTTPPreconditionRequired, HTTPTooManyRequests, HTTPRequestHeaderFieldsTooLarge, HTTPVariantAlsoNegotiates, HTTPNotExtended, HTTPNetworkAuthenticationRequired status codes (#644) - Do not remove AUTHORIZATION header by WSGI handler (#649) - Fix broken support for https proxies with authentication (#617) - Get REMOTE_* and SEVER_* http vars from headers when listening on unix socket (#654) - Add HTTP 308 support (#663) - Add Tf format (time to serve request in seconds, %06f format) to access log (#669) - Remove one and a half years long deprecated ClientResponse.read_and_close() method - Optimize chunked encoding: use a single syscall instead of 3 calls on sending chunked encoded data - Use TCP_CORK and TCP_NODELAY to optimize network latency and throughput (#680) - Websocket XOR performance improved (#687) - Avoid sending cookie attributes in Cookie header (#613) - Round server timeouts to seconds for grouping pending calls. That leads to less amount of poller syscalls e.g. epoll.poll(). (#702) - Close connection on websocket handshake error (#703) - Implement class based views (#684) - Add *headers* parameter to ws_connect() (#709) - Drop unused function `parse_remote_addr()` (#708) - Close session on exception (#707) - Store http code and headers in WSServerHandshakeError (#706) - Make some low-level message properties readonly (#710) 0.19.0 (11-25-2015) =================== - Memory leak in ParserBuffer (#579) - Support gunicorn's `max_requests` settings in gunicorn worker - Fix wsgi environment building (#573) - Improve access logging (#572) - Drop unused host and port from low-level server (#586) - Add Python 3.5 `async for` implementation to server websocket (#543) - Add Python 3.5 `async for` implementation to client websocket - Add Python 3.5 `async with` implementation to client websocket - Add charset parameter to web.Response constructor (#593) - Forbid passing both Content-Type header and content_type or charset params into web.Response constructor - Forbid duplicating of web.Application and web.Request (#602) - Add an option to pass Origin header in ws_connect (#607) - Add json_response function (#592) - Make concurrent connections respect limits (#581) - Collect history of responses if redirects occur (#614) - Enable passing pre-compressed data in requests (#621) - Expose named routes via UrlDispatcher.named_routes() (#622) - Allow disabling sendfile by environment variable AIOHTTP_NOSENDFILE (#629) - Use ensure_future if available - Always quote params for Content-Disposition (#641) - Support async for in multipart reader (#640) - Add Timeout context manager (#611) 0.18.4 (13-11-2015) =================== - Relax rule for router names again by adding dash to allowed characters: they may contain identifiers, dashes, dots and columns 0.18.3 (25-10-2015) =================== - Fix formatting for _RequestContextManager helper (#590) 0.18.2 (22-10-2015) =================== - Fix regression for OpenSSL < 1.0.0 (#583) 0.18.1 (20-10-2015) =================== - Relax rule for router names: they may contain dots and columns starting from now 0.18.0 (19-10-2015) =================== - Use errors.HttpProcessingError.message as HTTP error reason and message (#459) - Optimize cythonized multidict a bit - Change repr's of multidicts and multidict views - default headers in ClientSession are now case-insensitive - Make '=' char and 'wss://' schema safe in urls (#477) - `ClientResponse.close()` forces connection closing by default from now (#479) N.B. Backward incompatible change: was `.close(force=False) Using `force` parameter for the method is deprecated: use `.release()` instead. - Properly requote URL's path (#480) - add `skip_auto_headers` parameter for client API (#486) - Properly parse URL path in aiohttp.web.Request (#489) - Raise RuntimeError when chunked enabled and HTTP is 1.0 (#488) - Fix a bug with processing io.BytesIO as data parameter for client API (#500) - Skip auto-generation of Content-Type header (#507) - Use sendfile facility for static file handling (#503) - Default `response_factory` in `app.router.add_static` now is `StreamResponse`, not `None`. The functionality is not changed if default is not specified. - Drop `ClientResponse.message` attribute, it was always implementation detail. - Streams are optimized for speed and mostly memory in case of a big HTTP message sizes (#496) - Fix a bug for server-side cookies for dropping cookie and setting it again without Max-Age parameter. - Don't trim redirect URL in client API (#499) - Extend precision of access log "D" to milliseconds (#527) - Deprecate `StreamResponse.start()` method in favor of `StreamResponse.prepare()` coroutine (#525) `.start()` is still supported but responses begun with `.start()` does not call signal for response preparing to be sent. - Add `StreamReader.__repr__` - Drop Python 3.3 support, from now minimal required version is Python 3.4.1 (#541) - Add `async with` support for `ClientSession.request()` and family (#536) - Ignore message body on 204 and 304 responses (#505) - `TCPConnector` processed both IPv4 and IPv6 by default (#559) - Add `.routes()` view for urldispatcher (#519) - Route name should be a valid identifier name from now (#567) - Implement server signals (#562) - Drop a year-old deprecated *files* parameter from client API. - Added `async for` support for aiohttp stream (#542) 0.17.4 (09-29-2015) =================== - Properly parse URL path in aiohttp.web.Request (#489) - Add missing coroutine decorator, the client api is await-compatible now 0.17.3 (08-28-2015) =================== - Remove Content-Length header on compressed responses (#450) - Support Python 3.5 - Improve performance of transport in-use list (#472) - Fix connection pooling (#473) 0.17.2 (08-11-2015) =================== - Don't forget to pass `data` argument forward (#462) - Fix multipart read bytes count (#463) 0.17.1 (08-10-2015) =================== - Fix multidict comparison to arbitrary abc.Mapping 0.17.0 (08-04-2015) =================== - Make StaticRoute support Last-Modified and If-Modified-Since headers (#386) - Add Request.if_modified_since and Stream.Response.last_modified properties - Fix deflate compression when writing a chunked response (#395) - Request`s content-length header is cleared now after redirect from POST method (#391) - Return a 400 if server received a non HTTP content (#405) - Fix keep-alive support for aiohttp clients (#406) - Allow gzip compression in high-level server response interface (#403) - Rename TCPConnector.resolve and family to dns_cache (#415) - Make UrlDispatcher ignore quoted characters during url matching (#414) Backward-compatibility warning: this may change the url matched by your queries if they send quoted character (like %2F for /) (#414) - Use optional cchardet accelerator if present (#418) - Borrow loop from Connector in ClientSession if loop is not set - Add context manager support to ClientSession for session closing. - Add toplevel get(), post(), put(), head(), delete(), options(), patch() coroutines. - Fix IPv6 support for client API (#425) - Pass SSL context through proxy connector (#421) - Make the rule: path for add_route should start with slash - Don't process request finishing by low-level server on closed event loop - Don't override data if multiple files are uploaded with same key (#433) - Ensure multipart.BodyPartReader.read_chunk read all the necessary data to avoid false assertions about malformed multipart payload - Don't send body for 204, 205 and 304 http exceptions (#442) - Correctly skip Cython compilation in MSVC not found (#453) - Add response factory to StaticRoute (#456) - Don't append trailing CRLF for multipart.BodyPartReader (#454) 0.16.6 (07-15-2015) =================== - Skip compilation on Windows if vcvarsall.bat cannot be found (#438) 0.16.5 (06-13-2015) =================== - Get rid of all comprehensions and yielding in _multidict (#410) 0.16.4 (06-13-2015) =================== - Don't clear current exception in multidict's `__repr__` (cythonized versions) (#410) 0.16.3 (05-30-2015) =================== - Fix StaticRoute vulnerability to directory traversal attacks (#380) 0.16.2 (05-27-2015) =================== - Update python version required for `__del__` usage: it's actually 3.4.1 instead of 3.4.0 - Add check for presence of loop.is_closed() method before call the former (#378) 0.16.1 (05-27-2015) =================== - Fix regression in static file handling (#377) 0.16.0 (05-26-2015) =================== - Unset waiter future after cancellation (#363) - Update request url with query parameters (#372) - Support new `fingerprint` param of TCPConnector to enable verifying SSL certificates via MD5, SHA1, or SHA256 digest (#366) - Setup uploaded filename if field value is binary and transfer encoding is not specified (#349) - Implement `ClientSession.close()` method - Implement `connector.closed` readonly property - Implement `ClientSession.closed` readonly property - Implement `ClientSession.connector` readonly property - Implement `ClientSession.detach` method - Add `__del__` to client-side objects: sessions, connectors, connections, requests, responses. - Refactor connections cleanup by connector (#357) - Add `limit` parameter to connector constructor (#358) - Add `request.has_body` property (#364) - Add `response_class` parameter to `ws_connect()` (#367) - `ProxyConnector` does not support keep-alive requests by default starting from now (#368) - Add `connector.force_close` property - Add ws_connect to ClientSession (#374) - Support optional `chunk_size` parameter in `router.add_static()` 0.15.3 (04-22-2015) =================== - Fix graceful shutdown handling - Fix `Expect` header handling for not found and not allowed routes (#340) 0.15.2 (04-19-2015) =================== - Flow control subsystem refactoring - HTTP server performance optimizations - Allow to match any request method with `*` - Explicitly call drain on transport (#316) - Make chardet module dependency mandatory (#318) - Support keep-alive for HTTP 1.0 (#325) - Do not chunk single file during upload (#327) - Add ClientSession object for cookie storage and default headers (#328) - Add `keep_alive_on` argument for HTTP server handler. 0.15.1 (03-31-2015) =================== - Pass Autobahn Testsuite tests - Fixed websocket fragmentation - Fixed websocket close procedure - Fixed parser buffer limits - Added `timeout` parameter to WebSocketResponse ctor - Added `WebSocketResponse.close_code` attribute 0.15.0 (03-27-2015) =================== - Client WebSockets support - New Multipart system (#273) - Support for "Except" header (#287) (#267) - Set default Content-Type for post requests (#184) - Fix issue with construction dynamic route with regexps and trailing slash (#266) - Add repr to web.Request - Add repr to web.Response - Add repr for NotFound and NotAllowed match infos - Add repr for web.Application - Add repr to UrlMappingMatchInfo (#217) - Gunicorn 19.2.x compatibility 0.14.4 (01-29-2015) =================== - Fix issue with error during constructing of url with regex parts (#264) 0.14.3 (01-28-2015) =================== - Use path='/' by default for cookies (#261) 0.14.2 (01-23-2015) =================== - Connections leak in BaseConnector (#253) - Do not swallow websocket reader exceptions (#255) - web.Request's read, text, json are memorized (#250) 0.14.1 (01-15-2015) =================== - HttpMessage._add_default_headers does not overwrite existing headers (#216) - Expose multidict classes at package level - add `aiohttp.web.WebSocketResponse` - According to RFC 6455 websocket subprotocol preference order is provided by client, not by server - websocket's ping and pong accept optional message parameter - multidict views do not accept `getall` parameter anymore, it returns the full body anyway. - multidicts have optional Cython optimization, cythonized version of multidicts is about 5 times faster than pure Python. - multidict.getall() returns `list`, not `tuple`. - Backward incompatible change: now there are two mutable multidicts (`MultiDict`, `CIMultiDict`) and two immutable multidict proxies (`MultiDictProxy` and `CIMultiDictProxy`). Previous edition of multidicts was not a part of public API BTW. - Router refactoring to push Not Allowed and Not Found in middleware processing - Convert `ConnectionError` to `aiohttp.DisconnectedError` and don't eat `ConnectionError` exceptions from web handlers. - Remove hop headers from Response class, wsgi response still uses hop headers. - Allow to send raw chunked encoded response. - Allow to encode output bytes stream into chunked encoding. - Allow to compress output bytes stream with `deflate` encoding. - Server has 75 seconds keepalive timeout now, was non-keepalive by default. - Application does not accept `**kwargs` anymore ((#243)). - Request is inherited from dict now for making per-request storage to middlewares ((#242)). 0.13.1 (12-31-2014) =================== - Add `aiohttp.web.StreamResponse.started` property (#213) - HTML escape traceback text in `ServerHttpProtocol.handle_error` - Mention handler and middlewares in `aiohttp.web.RequestHandler.handle_request` on error ((#218)) 0.13.0 (12-29-2014) =================== - `StreamResponse.charset` converts value to lower-case on assigning. - Chain exceptions when raise `ClientRequestError`. - Support custom regexps in route variables (#204) - Fixed graceful shutdown, disable keep-alive on connection closing. - Decode HTTP message with `utf-8` encoding, some servers send headers in utf-8 encoding (#207) - Support `aiohtt.web` middlewares (#209) - Add ssl_context to TCPConnector (#206) 0.12.0 (12-12-2014) =================== - Deep refactoring of `aiohttp.web` in backward-incompatible manner. Sorry, we have to do this. - Automatically force aiohttp.web handlers to coroutines in `UrlDispatcher.add_route()` (#186) - Rename `Request.POST()` function to `Request.post()` - Added POST attribute - Response processing refactoring: constructor does not accept Request instance anymore. - Pass application instance to finish callback - Exceptions refactoring - Do not unquote query string in `aiohttp.web.Request` - Fix concurrent access to payload in `RequestHandle.handle_request()` - Add access logging to `aiohttp.web` - Gunicorn worker for `aiohttp.web` - Removed deprecated `AsyncGunicornWorker` - Removed deprecated HttpClient 0.11.0 (11-29-2014) =================== - Support named routes in `aiohttp.web.UrlDispatcher` (#179) - Make websocket subprotocols conform to spec (#181) 0.10.2 (11-19-2014) =================== - Don't unquote `environ['PATH_INFO']` in wsgi.py (#177) 0.10.1 (11-17-2014) =================== - aiohttp.web.HTTPException and descendants now files response body with string like `404: NotFound` - Fix multidict `__iter__`, the method should iterate over keys, not (key, value) pairs. 0.10.0 (11-13-2014) =================== - Add aiohttp.web subpackage for highlevel HTTP server support. - Add *reason* optional parameter to aiohttp.protocol.Response ctor. - Fix aiohttp.client bug for sending file without content-type. - Change error text for connection closed between server responses from 'Can not read status line' to explicit 'Connection closed by server' - Drop closed connections from connector (#173) - Set server.transport to None on .closing() (#172) 0.9.3 (10-30-2014) ================== - Fix compatibility with asyncio 3.4.1+ (#170) 0.9.2 (10-16-2014) ================== - Improve redirect handling (#157) - Send raw files as is (#153) - Better websocket support (#150) 0.9.1 (08-30-2014) ================== - Added MultiDict support for client request params and data (#114). - Fixed parameter type for IncompleteRead exception (#118). - Strictly require ASCII headers names and values (#137) - Keep port in ProxyConnector (#128). - Python 3.4.1 compatibility (#131). 0.9.0 (07-08-2014) ================== - Better client basic authentication support (#112). - Fixed incorrect line splitting in HttpRequestParser (#97). - Support StreamReader and DataQueue as request data. - Client files handling refactoring (#20). - Backward incompatible: Replace DataQueue with StreamReader for request payload (#87). 0.8.4 (07-04-2014) ================== - Change ProxyConnector authorization parameters. 0.8.3 (07-03-2014) ================== - Publish TCPConnector properties: verify_ssl, family, resolve, resolved_hosts. - Don't parse message body for HEAD responses. - Refactor client response decoding. 0.8.2 (06-22-2014) ================== - Make ProxyConnector.proxy immutable property. - Make UnixConnector.path immutable property. - Fix resource leak for aiohttp.request() with implicit connector. - Rename Connector's reuse_timeout to keepalive_timeout. 0.8.1 (06-18-2014) ================== - Use case insensitive multidict for server request/response headers. - MultiDict.getall() accepts default value. - Catch server ConnectionError. - Accept MultiDict (and derived) instances in aiohttp.request header argument. - Proxy 'CONNECT' support. 0.8.0 (06-06-2014) ================== - Add support for utf-8 values in HTTP headers - Allow to use custom response class instead of HttpResponse - Use MultiDict for client request headers - Use MultiDict for server request/response headers - Store response headers in ClientResponse.headers attribute - Get rid of timeout parameter in aiohttp.client API - Exceptions refactoring 0.7.3 (05-20-2014) ================== - Simple HTTP proxy support. 0.7.2 (05-14-2014) ================== - Get rid of `__del__` methods - Use ResourceWarning instead of logging warning record. 0.7.1 (04-28-2014) ================== - Do not unquote client request urls. - Allow multiple waiters on transport drain. - Do not return client connection to pool in case of exceptions. - Rename SocketConnector to TCPConnector and UnixSocketConnector to UnixConnector. 0.7.0 (04-16-2014) ================== - Connection flow control. - HTTP client session/connection pool refactoring. - Better handling for bad server requests. 0.6.5 (03-29-2014) ================== - Added client session reuse timeout. - Better client request cancellation support. - Better handling responses without content length. - Added HttpClient verify_ssl parameter support. 0.6.4 (02-27-2014) ================== - Log content-length missing warning only for put and post requests. 0.6.3 (02-27-2014) ================== - Better support for server exit. - Read response body until EOF if content-length is not defined (#14) 0.6.2 (02-18-2014) ================== - Fix trailing char in allowed_methods. - Start slow request timer for first request. 0.6.1 (02-17-2014) ================== - Added utility method HttpResponse.read_and_close() - Added slow request timeout. - Enable socket SO_KEEPALIVE if available. 0.6.0 (02-12-2014) ================== - Better handling for process exit. 0.5.0 (01-29-2014) ================== - Allow to use custom HttpRequest client class. - Use gunicorn keepalive setting for asynchronous worker. - Log leaking responses. - python 3.4 compatibility 0.4.4 (11-15-2013) ================== - Resolve only AF_INET family, because it is not clear how to pass extra info to asyncio. 0.4.3 (11-15-2013) ================== - Allow to wait completion of request with `HttpResponse.wait_for_close()` 0.4.2 (11-14-2013) ================== - Handle exception in client request stream. - Prevent host resolving for each client request. 0.4.1 (11-12-2013) ================== - Added client support for `expect: 100-continue` header. 0.4 (11-06-2013) ================ - Added custom wsgi application close procedure - Fixed concurrent host failure in HttpClient 0.3 (11-04-2013) ================ - Added PortMapperWorker - Added HttpClient - Added TCP connection timeout to HTTP client - Better client connection errors handling - Gracefully handle process exit 0.2 === - Fix packaging
| ver. 1.4 |
Github
|
.
| PHP 8.0.30 | Génération de la page: 0 |
proxy
|
phpinfo
|
Réglages