Metadata-Version: 2.1
Name: pillars
Version: 0.2.2
Summary: Collection of helpers for building asyncio daemons.
Home-page: UNKNOWN
License: Apache-2.0
Author: Allocloud
Author-email: allocloud@ovv.wtf
Requires-Python: >=3.7,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Requires-Dist: aiodns (>=1.1,<2.0)
Requires-Dist: aiohttp (>=3.3,<4.0)
Requires-Dist: aioredis (>=1.1,<2.0)
Requires-Dist: aiosip
Requires-Dist: async-timeout (>=3.0,<4.0)
Requires-Dist: asyncpg (>=0.17.0,<0.18.0)
Requires-Dist: attrs (>=18.1,<19.0)
Requires-Dist: cchardet (>=2.1,<3.0)
Requires-Dist: cerberus (>=1.2,<2.0)
Requires-Dist: cython (>=0.28.5,<0.29.0)
Requires-Dist: panoramisk
Requires-Dist: pyyaml (>=3.13,<4.0)
Requires-Dist: setproctitle (>=1.1,<2.0)
Requires-Dist: ujson (>=1.35,<2.0)
Requires-Dist: uvloop (>=0.11.2,<0.12.0)
Description-Content-Type: text/x-rst

`Pillars <http://pypillars.readthedocs.io>`_
============================================

Collection of helpers for building asyncio daemons.

.. image:: https://readthedocs.org/projects/pypillars/badge/?version=latest
    :target: http://pypillars.readthedocs.io/en/latest/
    :alt: Documentation Status
.. image:: https://travis-ci.org/Eyepea/pillars.svg?branch=master
    :target: https://travis-ci.org/Eyepea/pillars
    :alt: Travis-ci status
.. image:: https://badge.fury.io/py/pillars.svg
    :target: https://pypi.org/project/pillars/
    :alt: PyPI status

Installation
------------

Pillars is `available on PyPI <https://pypi.org/project/pillars/>`_.

.. code::

    $ pip3 install pillars

Quickstart
----------

.. code-block:: python

    import pillars
    import aiohttp

    app = pillars.Application(name="example")
    http = pillars.transports.http.Application()

    app.listen(
        app=http,
        name="http",
        runner=aiohttp.web.AppRunner(http),
        sites=(functools.partial(aiohttp.web.TCPSite, host="127.0.01", port=8080),),
    )

    http.router.add_route("GET", "/", hello_world)

    async def hello_world(request):
        return pillars.Response(status=200, data={"data": "Hello world"})

For more examples see the `examples folder <https://github.com/eyepea/pillars/tree/master/examples>`_.

Changelog
---------

0.2.1
`````

* Properly close websocket connection
* Remove pg uuid encoder
* Log when pg jsonb encode fails
* Use aiohttp exception for ARI transports

0.1.1
`````

* Initial release

