Metadata-Version: 1.1
Name: aiohttp
Version: 0.22.5
Summary: http client/server for asyncio
Home-page: https://github.com/KeepSafe/aiohttp/
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
License: Apache 2
Description: http client/server for asyncio
        ==============================
        
        .. image:: https://raw.github.com/KeepSafe/aiohttp/master/docs/_static/aiohttp-icon-128x128.png
          :height: 64px
          :width: 64px
          :alt: aiohttp logo
        
        .. image:: https://travis-ci.org/KeepSafe/aiohttp.svg?branch=master
          :target:  https://travis-ci.org/KeepSafe/aiohttp
          :align: right
        
        .. image:: https://coveralls.io/repos/KeepSafe/aiohttp/badge.svg?branch=master&service=github
          :target:  https://coveralls.io/github/KeepSafe/aiohttp?branch=master
          :align: right
        
        .. image:: https://badge.fury.io/py/aiohttp.svg
            :target: https://badge.fury.io/py/aiohttp
        
        Features
        --------
        
        - Supports both client and server side of HTTP protocol.
        - Supports both client and server Web-Sockets out-of-the-box.
        - Web-server has middlewares and pluggable routing.
        
        
        Getting started
        ---------------
        
        Client
        ^^^^^^
        
        To retrieve something from the web:
        
        .. code-block:: python
        
          import aiohttp
          import asyncio
        
          async def fetch(session, url):
              with aiohttp.Timeout(10):
                  async with session.get(url) as response:
                      return await response.text()
        
          if __name__ == '__main__':
              loop = asyncio.get_event_loop()
              with aiohttp.ClientSession(loop=loop) as session:
                  html = loop.run_until_complete(
                      fetch(session, 'http://python.org'))
                  print(html)
        
        
        Server
        ^^^^^^
        
        This is simple usage example:
        
        .. code-block:: python
        
            from aiohttp import web
        
            async def handle(request):
                name = request.match_info.get('name', "Anonymous")
                text = "Hello, " + name
                return web.Response(body=text.encode('utf-8'))
        
            async def wshandler(request):
                ws = web.WebSocketResponse()
                await ws.prepare(request)
        
                async for msg in ws:
                    if msg.tp == web.MsgType.text:
                        ws.send_str("Hello, {}".format(msg.data))
                    elif msg.tp == web.MsgType.binary:
                        ws.send_bytes(msg.data)
                    elif msg.tp == web.MsgType.close:
                        break
        
                return ws
        
        
            app = web.Application()
            app.router.add_route('GET', '/echo', wshandler)
            app.router.add_route('GET', '/{name}', handle)
        
            web.run_app(app)
        
        
        Note: examples are written for Python 3.5+ and utilize PEP-492 aka
        async/await.  If you are using Python 3.4 please replace ``await`` with
        ``yield from`` and ``async def`` with ``@coroutine`` e.g.::
        
            async def coro(...):
                ret = await f()
        
        shoud be replaced by::
        
            @asyncio.coroutine
            def coro(...):
                ret = yield from f()
        
        Documentation
        -------------
        
        https://aiohttp.readthedocs.io/
        
        Discussion list
        ---------------
        
        *aio-libs* google group: https://groups.google.com/forum/#!forum/aio-libs
        
        Requirements
        ------------
        
        - Python >= 3.4.1
        - chardet https://pypi.python.org/pypi/chardet
        
        Optionally you may install cChardet library:
        https://pypi.python.org/pypi/cchardet/1.0.0
        
        
        License
        -------
        
        ``aiohttp`` is offered under the Apache 2 license.
        
        
        Source code
        ------------
        
        The latest developer version is available in a github repository:
        https://github.com/KeepSafe/aiohttp
        
        Benchmarks
        ----------
        
        If you are interested in by efficiency, AsyncIO community maintains a
        list of benchmarks on the official wiki:
        https://github.com/python/asyncio/wiki/Benchmarks
        
        CHANGES
        =======
        
        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 doesn't 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 erro #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 paramter.
          Use aiohttp.BasicAuth instead (BACKWARD INCOMPATIBLE)
        
        - Remove deprecated `request.payload` property, use `content` instead.
          (BACKWARD INCOMPATIBLE)
        
        - Drop all mentions about api changes in documentaion for versions
          older than 0.16
        
        - Allow to override default cookie jar #963
        
        - Add manylinux wheel builds
        
        - Dup a socket for sendfile usage #964
Platform: UNKNOWN
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Internet :: WWW/HTTP
