Metadata-Version: 2.1
Name: aiopg
Version: 1.2.0b2
Summary: Postgres integration with asyncio.
Home-page: https://aiopg.readthedocs.io
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
Maintainer: Andrew Svetlov <andrew.svetlov@gmail.com>, Alexey Firsov <virmir49@gmail.com>, Alexey Popravka <alexey.popravka@horsedevel.com>, Yury Pliner <yury.pliner@gmail.com>
Maintainer-email: virmir49@gmail.com
License: BSD
Download-URL: https://pypi.python.org/pypi/aiopg
Project-URL: Chat: Gitter, https://gitter.im/aio-libs/Lobby
Project-URL: CI: GA, https://github.com/aio-libs/aiopg/actions?query=workflow%3ACI
Project-URL: Coverage: codecov, https://codecov.io/gh/aio-libs/aiopg
Project-URL: Docs: RTD, https://aiopg.readthedocs.io
Project-URL: GitHub: issues, https://github.com/aio-libs/aiopg/issues
Project-URL: GitHub: repo, https://github.com/aio-libs/aiopg
Description: aiopg
=====
.. image:: https://github.com/aio-libs/aiopg/workflows/CI/badge.svg
:target: https://github.com/aio-libs/aiopg/actions?query=workflow%3ACI
.. image:: https://codecov.io/gh/aio-libs/aiopg/branch/master/graph/badge.svg
:target: https://codecov.io/gh/aio-libs/aiopg
.. image:: https://badges.gitter.im/Join%20Chat.svg
:target: https://gitter.im/aio-libs/Lobby
:alt: Chat on Gitter
**aiopg** is a library for accessing a PostgreSQL_ database
from the asyncio_ (PEP-3156/tulip) framework. It wraps
asynchronous features of the Psycopg database driver.
Example
-------
.. code:: python
import asyncio
import aiopg
dsn = 'dbname=aiopg user=aiopg password=passwd host=127.0.0.1'
async def go():
pool = await aiopg.create_pool(dsn)
async with pool.acquire() as conn:
async with conn.cursor() as cur:
await cur.execute("SELECT 1")
ret = []
async for row in cur:
ret.append(row)
assert ret == [(1,)]
loop = asyncio.get_event_loop()
loop.run_until_complete(go())
Example of SQLAlchemy optional integration
------------------------------------------
.. code:: python
import 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)))
async def create_table(engine):
async with engine.acquire() as conn:
await conn.execute('DROP TABLE IF EXISTS tbl')
await conn.execute('''CREATE TABLE tbl (
id serial PRIMARY KEY,
val varchar(255))''')
async def go():
async with create_engine(user='aiopg',
database='aiopg',
host='127.0.0.1',
password='passwd') as engine:
async with engine.acquire() as conn:
await conn.execute(tbl.insert().values(val='abc'))
async for row in conn.execute(tbl.select()):
print(row.id, row.val)
loop = asyncio.get_event_loop()
loop.run_until_complete(go())
.. _PostgreSQL: http://www.postgresql.org/
.. _asyncio: http://docs.python.org/3.4/library/asyncio.html
Please use::
$ make test
for executing the project's unittests.
See https://aiopg.readthedocs.io/en/stable/contributing.html for details
on how to set up your environment to run the tests.
Changelog
---------
1.2.0b2 (2020-12-21)
^^^^^^^^^^^^^^^^^^^^
* Fix IsolationLevel.read_committed and introduce IsolationLevel.default `#770 <https://github.com/aio-libs/aiopg/pull/770>`_
* Fix python 3.8 warnings in tests `#771 <https://github.com/aio-libs/aiopg/pull/771>`_
1.2.0b1 (2020-12-16)
^^^^^^^^^^^^^^^^^^^^
* Deprecate blocking connection.cancel() method `#570 <https://github.com/aio-libs/aiopg/pull/570>`_
1.2.0b0 (2020-12-15)
^^^^^^^^^^^^^^^^^^^^
* Implement timeout on acquiring connection from pool `#766 <https://github.com/aio-libs/aiopg/pull/766>`_
1.1.0 (2020-12-10)
^^^^^^^^^^^^^^^^^^
1.1.0b2 (2020-12-09)
^^^^^^^^^^^^^^^^^^^^
* Added missing slots to context managers `#763 <https://github.com/aio-libs/aiopg/pull/763>`_
1.1.0b1 (2020-12-07)
^^^^^^^^^^^^^^^^^^^^
* Fix on_connect multiple call on acquire `#552 <https://github.com/aio-libs/aiopg/pull/552>`_
* Fix python 3.8 warnings `#622 <https://github.com/aio-libs/aiopg/pull/642>`_
* Bump minimum psycopg version to 2.8.4 `#754 <https://github.com/aio-libs/aiopg/pull/754>`_
* Fix Engine.release method to release connection in any way `#756 <https://github.com/aio-libs/aiopg/pull/756>`_
1.0.0 (2019-09-20)
^^^^^^^^^^^^^^^^^^
* Removal of an asynchronous call in favor of issues # 550
* Big editing of documentation and minor bugs #534
0.16.0 (2019-01-25)
^^^^^^^^^^^^^^^^^^^
* Fix select priority name `#525 <https://github.com/aio-libs/aiopg/issues/525>`_
* Rename `psycopg2` to `psycopg2-binary` to fix deprecation warning `#507 <https://github.com/aio-libs/aiopg/issues/507>`_
* Fix `#189 <https://github.com/aio-libs/aiopg/issues/189>`_ hstore when using ReadDictCursor `#512 <https://github.com/aio-libs/aiopg/issues/512>`_
* close cannot be used while an asynchronous query is underway `#452 <https://github.com/aio-libs/aiopg/issues/452>`_
* sqlalchemy adapter trx begin allow transaction_mode `#498 <https://github.com/aio-libs/aiopg/issues/498>`_
0.15.0 (2018-08-14)
^^^^^^^^^^^^^^^^^^^
* Support Python 3.7 `#437 <https://github.com/aio-libs/aiopg/issues/437>`_
0.14.0 (2018-05-10)
^^^^^^^^^^^^^^^^^^^
* Add ``get_dialect`` func to have ability to pass ``json_serializer`` `#451 <https://github.com/aio-libs/aiopg/issues/451>`_
0.13.2 (2018-01-03)
^^^^^^^^^^^^^^^^^^^
* Fixed compatibility with SQLAlchemy 1.2.0 `#412 <https://github.com/aio-libs/aiopg/issues/412>`_
* Added support for transaction isolation levels `#219 <https://github.com/aio-libs/aiopg/issues/219>`_
0.13.1 (2017-09-10)
^^^^^^^^^^^^^^^^^^^
* Added connection poll recycling logic `#373 <https://github.com/aio-libs/aiopg/issues/373>`_
0.13.0 (2016-12-02)
^^^^^^^^^^^^^^^^^^^
* Add `async with` support to `.begin_nested()` `#208 <https://github.com/aio-libs/aiopg/issues/208>`_
* Fix connection.cancel() `#212 <https://github.com/aio-libs/aiopg/issues/212>`_ `#223 <https://github.com/aio-libs/aiopg/issues/223>`_
* Raise informative error on unexpected connection closing `#191 <https://github.com/aio-libs/aiopg/issues/191>`_
* Added support for python types columns issues `#217 <https://github.com/aio-libs/aiopg/issues/217>`_
* Added support for default values in SA table issues `#206 <https://github.com/aio-libs/aiopg/issues/206>`_
0.12.0 (2016-10-09)
^^^^^^^^^^^^^^^^^^^
* Add an on_connect callback parameter to pool `#141 <https://github.com/aio-libs/aiopg/issues/141>`_
* Fixed connection to work under both windows and posix based systems `#142 <https://github.com/aio-libs/aiopg/issues/142>`_
0.11.0 (2016-09-12)
^^^^^^^^^^^^^^^^^^^
* Immediately remove callbacks from a closed file descriptor `#139 <https://github.com/aio-libs/aiopg/issues/139>`_
* Drop Python 3.3 support
0.10.0 (2016-07-16)
^^^^^^^^^^^^^^^^^^^
* Refactor tests to use dockerized Postgres server `#107 <https://github.com/aio-libs/aiopg/issues/107>`_
* Reduce default pool minsize to 1 `#106 <https://github.com/aio-libs/aiopg/issues/106>`_
* Explicitly enumerate packages in setup.py `#85 <https://github.com/aio-libs/aiopg/issues/85>`_
* Remove expired connections from pool on acquire `#116 <https://github.com/aio-libs/aiopg/issues/116>`_
* Don't crash when Connection is GC'ed `#124 <https://github.com/aio-libs/aiopg/issues/124>`_
* Use loop.create_future() if available
0.9.2 (2016-01-31)
^^^^^^^^^^^^^^^^^^
* Make pool.release return asyncio.Future, so we can wait on it in
`__aexit__` `#102 <https://github.com/aio-libs/aiopg/issues/102>`_
* Add support for uuid type `#103 <https://github.com/aio-libs/aiopg/issues/103>`_
0.9.1 (2016-01-17)
^^^^^^^^^^^^^^^^^^
* Documentation update `#101 <https://github.com/aio-libs/aiopg/issues/101>`_
0.9.0 (2016-01-14)
^^^^^^^^^^^^^^^^^^
* Add async context managers for transactions `#91 <https://github.com/aio-libs/aiopg/issues/91>`_
* Support async iterator in ResultProxy `#92 <https://github.com/aio-libs/aiopg/issues/92>`_
* Add async with for engine `#90 <https://github.com/aio-libs/aiopg/issues/90>`_
0.8.0 (2015-12-31)
^^^^^^^^^^^^^^^^^^
* Add PostgreSQL notification support `#58 <https://github.com/aio-libs/aiopg/issues/58>`_
* Support pools with unlimited size `#59 <https://github.com/aio-libs/aiopg/issues/59>`_
* Cancel current DB operation on asyncio timeout `#66 <https://github.com/aio-libs/aiopg/issues/66>`_
* Add async with support for Pool, Connection, Cursor `#88 <https://github.com/aio-libs/aiopg/issues/88>`_
0.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 on `connection.close()`.
0.6.0 (2015-02-03)
^^^^^^^^^^^^^^^^^^
* Accept dict, list, tuple, named and positional parameters in
`SAConnection.execute()`
0.5.2 (2014-12-08)
^^^^^^^^^^^^^^^^^^
* Minor release, fixes a bug that leaves connection in broken state
after `cursor.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 Engine
* Reimplement connection pool (now pool size cannot be greater than pool.maxsize)
* Add .close() and .wait_closed() to Pool and Engine
* Add minsize, maxsize, size and freesize properties to sa.Engine
* Support *echo* parameter for logging executed SQL commands
* Connection.close() is not a coroutine (but we keep backward compatibility).
0.4.1 (2014-10-02)
^^^^^^^^^^^^^^^^^^
* make cursor iterable
* update docs
0.4.0 (2014-10-02)
^^^^^^^^^^^^^^^^^^
* add timeouts for database operations.
* Autoregister psycopg2 support for json data type.
* Support JSON in aiopg.sa
* Support ARRAY in aiopg.sa
* Autoregister hstore support if present in connected DB
* Support HSTORE in aiopg.sa
0.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.
Platform: macOS
Platform: POSIX
Platform: Windows
Classifier: License :: OSI Approved :: BSD License
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Operating System :: POSIX
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Environment :: Web Environment
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
Classifier: Framework :: AsyncIO
Requires-Python: >=3.6
Description-Content-Type: text/x-rst
Provides-Extra: sa