Package: aiopgx
aiopgis a library for accessing aPostgreSQLdatabase
from theasyncio(PEP-3156/tulip) framework. It wraps
asynchronous features of the Psycopg database driver.Exampleimport asyncio
from aiopg.pool import create_pool

dsn = 'dbname=jetty user=nick password=1234 host=localhost port=5432'


@asyncio.coroutine
def test_select():
    pool = yield from create_pool(dsn)

    with (yield from pool) as conn:
        cur = yield from conn.cursor()
        yield from cur.execute('SELECT 1')
        ret = yield from cur.fetchone()
        assert ret == (1,), ret


asyncio.get_event_loop().run_until_complete(test_select())Example of SQLAlchemy optional integrationimport asyncio
from aiopg.sa import create_engine
import sqlalchemy as sa


metadata = sa.MetaData()

tbl = sa.Table('tbl', metadata,
    sa.Column('id', sa.Integer, primary_key=True),
    sa.Column('val', sa.String(255)))


@asyncio.coroutine
def go():
    engine = yield from create_engine(user='aiopg',
                                      database='aiopg',
                                      host='127.0.0.1',
                                      password='passwd')

    with (yield from engine) as conn:
        yield from conn.execute(tbl.insert().values(val='abc'))

        res = yield from conn.execute(tbl.select())
        for row in res:
            print(row.id, row.val)


asyncio.get_event_loop().run_until_complete(go())Please use:$ python3 runtests.pyfor executing project’s unittestsCHANGES0.8.0 (XXXX-XX-XX)Add PostgreSQL notification support #58Support pools with unlimited size #590.7.0 (2015-04-22)Get rid of resource leak on connection failure.Report ResourceWarning on non-closed connections.Deprecate iteration protocol support in cursor and ResultProxy.Release sa connection to pool onconnection.close().0.6.0 (2015-02-03)Accept dict, list, tuple, named and positional parameters inSAConnection.execute()0.5.2 (2014-12-08)Minor release, fixes a bug that leaves connection in broken state
aftercursor.execute()failure.0.5.1 (2014-10-31)Fix a bug for processing transactions in line.0.5.0 (2014-10-31)Add .terminate() to Pool and EngineReimplement connection pool (now pool size cannot be greater than pool.maxsize)Add .close() and .wait_closed() to Pool and EngineAdd minsize, maxsize, size and freesize properties to sa.EngineSupportechoparameter for logging executed SQL commandsConnection.close() is not a coroutine (but we keep backward compatibility).0.4.1 (2014-10-02)make cursor iterableupdate docs0.4.0 (2014-10-02)add timeouts for database operations.Autoregister psycopg2 support for json data type.Support JSON in aiopg.saSupport ARRAY in aiopg.saAutoregister hstore support if present in connected DBSupport HSTORE in aiopg.sa0.3.2 (2014-07-07)change signature to cursor.execute(operation, parameters=None) to
follow psycopg2 convention.0.3.1 (2014-07-04)Forward arguments to cursor constructor for pooled connections.0.3.0 (2014-06-22)Allow executing SQLAlchemy DDL statements.Fix bug with race conditions on acquiring/releasing connections from pool.0.2.3 (2014-06-12)Fix bug in connection pool.0.2.2 (2014-06-07)Fix bug with passing parameters into SAConnection.execute when
executing raw SQL expression.0.2.1 (2014-05-08)Close connection with invalid transaction status on returning to pool.0.2.0 (2014-05-04)Implemented optional support for sqlalchemy functional sql layer.0.1.0 (2014-04-06)Implemented plain connections: connect, Connection, Cursor.Implemented database pools: create_pool and Pool.