556 lines
15 KiB
Plaintext
556 lines
15 KiB
Plaintext
Metadata-Version: 2.1
|
|
Name: aiopg
|
|
Version: 1.4.0
|
|
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
|
|
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.7
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Classifier: Programming Language :: Python :: 3.11
|
|
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.7
|
|
Description-Content-Type: text/x-rst
|
|
License-File: LICENSE
|
|
Requires-Dist: psycopg2-binary (>=2.9.5)
|
|
Requires-Dist: async-timeout (<5.0,>=3.0)
|
|
Provides-Extra: sa
|
|
Requires-Dist: sqlalchemy[postgresql_psycopg2binary] (<1.5,>=1.3) ; extra == 'sa'
|
|
|
|
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: https://docs.python.org/3/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.4.0 (2022-10-26)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
* Add python 3.11 and drop python 3.6 support` #892 <https://github.com/aio-libs/aiopg/pull/892>`_
|
|
|
|
|
|
1.3.5 (2022-09-25)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
* Fix pool size limit check for unlimited pools `#888 <https://github.com/aio-libs/aiopg/pull/888>`_
|
|
|
|
|
|
1.3.4 (2022-06-30)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
1.3.4b3 (2022-06-29)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
1.3.4b2 (2022-06-29)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
1.3.4b1 (2022-06-29)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Fix compatibility with SA 1.4.38 `#891 <https://github.com/aio-libs/aiopg/pull/891>`_
|
|
* Add py.typed marker `#878 <https://github.com/aio-libs/aiopg/pull/878>`_
|
|
|
|
|
|
1.3.3 (2021-11-01)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
* Support async-timeout 4.0+
|
|
|
|
|
|
1.3.2 (2021-10-07)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
1.3.2b2 (2021-10-07)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Respect use_labels for select statement `#882 <https://github.com/aio-libs/aiopg/pull/882>`_
|
|
|
|
|
|
1.3.2b1 (2021-07-11)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Fix compatibility with SQLAlchemy >= 1.4 `#870 <https://github.com/aio-libs/aiopg/pull/870>`_
|
|
|
|
|
|
1.3.1 (2021-07-08)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
1.3.1b2 (2021-07-06)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Suppress "Future exception was never retrieved" `#862 <https://github.com/aio-libs/aiopg/pull/862>`_
|
|
|
|
|
|
1.3.1b1 (2021-07-05)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Fix ClosableQueue.get on cancellation, close it on Connection.close `#859 <https://github.com/aio-libs/aiopg/pull/859>`_
|
|
|
|
|
|
1.3.0 (2021-06-30)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
1.3.0b4 (2021-06-28)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Fix "Unable to detect disconnect when using NOTIFY/LISTEN" `#559 <https://github.com/aio-libs/aiopg/pull/559>`_
|
|
|
|
|
|
1.3.0b3 (2021-04-03)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Reformat using black `#814 <https://github.com/aio-libs/aiopg/pull/814>`_
|
|
|
|
|
|
1.3.0b2 (2021-04-02)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Type annotations `#813 <https://github.com/aio-libs/aiopg/pull/813>`_
|
|
|
|
|
|
1.3.0b1 (2021-03-30)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Raise ResourceClosedError if we try to open a cursor on a closed SAConnection `#811 <https://github.com/aio-libs/aiopg/pull/811>`_
|
|
|
|
|
|
1.3.0b0 (2021-03-25)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Fix compatibility with SA 1.4 for IN statement `#806 <https://github.com/aio-libs/aiopg/pull/806>`_
|
|
|
|
|
|
1.2.1 (2021-03-23)
|
|
^^^^^^^^^^^^^^^^^^
|
|
|
|
* Pop loop in connection init due to backward compatibility `#808 <https://github.com/aio-libs/aiopg/pull/808>`_
|
|
|
|
|
|
1.2.0b4 (2021-03-23)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Set max supported sqlalchemy version `#805 <https://github.com/aio-libs/aiopg/pull/805>`_
|
|
|
|
|
|
1.2.0b3 (2021-03-22)
|
|
^^^^^^^^^^^^^^^^^^^^
|
|
|
|
* Don't run ROLLBACK when the connection is closed `#778 <https://github.com/aio-libs/aiopg/pull/778>`_
|
|
|
|
* Multiple cursors support `#801 <https://github.com/aio-libs/aiopg/pull/801>`_
|
|
|
|
|
|
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.
|
|
|