An asynchronous Postgres client mixin for Tornado applications
Find a file
Gavin M. Roy 86b6c022f0 Update DEFAULT_POSTGRES_MAX_POOL_SIZE
Even though ``0`` is documented as the max pool size in the aiopg docs, setting it to 0 causes an exception in `aiopg.pool.Pool._fill_free_pool`:

```
  File "/Users/gavinr/Source/PSE/anabroker/env/lib/python3.7/site-packages/aiopg/pool.py", line 208, in _fill_free_pool
    if override_min and self.size < self.maxsize:
TypeError: '<' not supported between instances of 'int' and 'NoneType'
```

Set to the same default as aiopg, @ 10.
2020-04-13 14:20:09 -04:00
.github/workflows Testing update and fixes found in testing 2020-04-07 16:59:06 -04:00
docs Update DEFAULT_POSTGRES_MAX_POOL_SIZE 2020-04-13 14:20:09 -04:00
fixtures Testing update and fixes found in testing 2020-04-07 16:59:06 -04:00
.editorconfig Initial WIP commit 2020-04-06 17:39:52 -04:00
.gitignore Initial commit 2020-04-06 12:27:33 -04:00
bootstrap Testing update and fixes found in testing 2020-04-07 16:59:06 -04:00
CONTRIBUTING.md Add CONTRIBUTING info 2020-04-08 18:23:42 -04:00
docker-compose.yml Testing update and fixes found in testing 2020-04-07 16:59:06 -04:00
LICENSE Initial WIP commit 2020-04-06 17:39:52 -04:00
MANIFEST.in Include the VERSION file when packaging 2020-04-06 17:49:03 -04:00
README.rst Update DEFAULT_POSTGRES_MAX_POOL_SIZE 2020-04-13 14:20:09 -04:00
setup.cfg pymodules -> py_modules, fix packaging 2020-04-10 16:26:18 -04:00
setup.py Initial WIP commit 2020-04-06 17:39:52 -04:00
sprockets_postgres.py Update DEFAULT_POSTGRES_MAX_POOL_SIZE 2020-04-13 14:20:09 -04:00
tests.py Add docstrings, fix edge cases 2020-04-08 18:43:51 -04:00
VERSION Update DEFAULT_POSTGRES_MAX_POOL_SIZE 2020-04-13 14:20:09 -04:00

Sprockets Postgres
==================
An set of mixins and classes for interacting with PostgreSQL using asyncio in
Tornado / sprockets.http applications using aiopg.

|Version| |Status| |Coverage| |License|

Installation
------------
``sprockets-postgres`` is available on the Python package index and is installable via pip:

.. code:: bash

    pip install sprockets-postgres

Documentation
-------------
Documentation is available at `sprockets-postgres.readthedocs.io <https://sprockets-postgres.readthedocs.io>`_.

Configuration
-------------
The following table details the environment variable configuration options:

+---------------------------------+--------------------------------------------------+-----------+
| Variable                        | Definition                                       | Default   |
+=================================+==================================================+===========+
| ``POSTGRES_URL``                | The PostgreSQL URL to connect to                 |           |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_MAX_POOL_SIZE``      | Maximum connection count to Postgres per backend | ``10``    |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_MIN_POOL_SIZE``      | Minimum or starting pool size.                   | ``1``     |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_CONNECTION_TIMEOUT`` | The maximum time in seconds to spend attempting  | ``10``    |
|                                 | to create a new connection.                      |           |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_CONNECTION_TTL``     | Time-to-life in seconds for a pooled connection. | ``300``   |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_QUERY_TIMEOUT``      | Maximum execution time for a query in seconds.   | ``60``    |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_HSTORE``             | Enable HSTORE support in the client.             | ``FALSE`` |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_JSON``               | Enable JSON support in the client.               | ``FALSE`` |
+---------------------------------+--------------------------------------------------+-----------+
| ``POSTGRES_UUID``               | Enable UUID support in the client.               | ``TRUE``  |
+---------------------------------+--------------------------------------------------+-----------+

Requirements
------------
- `aiopg <https://aioboto3.readthedocs.io/en/latest/>`_
- `sprockets.http <https://sprocketshttp.readthedocs.io/en/master/>`_
- `Tornado <https://tornadoweb.org>`_

Version History
---------------
Available at https://sprockets-postgres.readthedocs.org/en/latest/history.html

.. |Version| image:: https://img.shields.io/pypi/v/sprockets-postgres.svg?
   :target: https://pypi.python.org/pypi/sprockets-postgres

.. |Status| image:: https://github.com/sprockets/sprockets-postgres/workflows/Testing/badge.svg?
   :target: https://github.com/sprockets/sprockets-postgres/actions?workflow=Testing
   :alt: Build Status

.. |Coverage| image:: https://img.shields.io/codecov/c/github/sprockets/sprockets-postgres.svg?
   :target: https://codecov.io/github/sprockets/sprockets-postgres?branch=master

.. |License| image:: https://img.shields.io/pypi/l/sprockets-postgres.svg?
   :target: https://sprockets-postgres.readthedocs.org