aio-databases 0.3.3
pip install aio-databases==0.3.3
Released:
Async Support for various databases
Navigation
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: MIT License (MIT)
- Author: Kirill Klenov
- Tags asyncio, databases, mysql, sqlite, postgres, postgresql
- Requires: Python >=3.7
Classifiers
- Development Status
- Framework
- Intended Audience
- License
- Programming Language
Project description
AIO-Databases
The package gives you asycio support for a range of databases (SQLite, PostgreSQL, MySQL).
Features
- Has no dependencies (except databases drivers)
- Supports aiosqlite, aiomysql, aiopg, asyncpg
- Manage pools of connections
- Manage transactions
Requirements
- python >= 3.7
Installation
aio-databases should be installed using pip:
$ pip install aio-databases
You have to choose and install the required database drivers with:
# To support SQLite
$ pip install aio-databases[aiosqlite]
# To support MySQL
$ pip install aio-databases[aiomysql]
# To support PostgreSQL (choose one)
$ pip install aio-databases[aiopg]
$ pip install aio-databases[asyncpg]
# To support ODBC (alpha state)
$ pip install aio-databases[aioodbc]
Usage
- Init a database
from aio_databases import Database
db = Database('sqlite:///:memory:')
- Prepare the database to work
# Initialize a database's pool
async def my_app_starts():
await db.connect()
# Close the pool
async def my_app_ends():
await db.disconnect()
# As an alternative users are able to use the database
# as an async context manager
async with db:
await my_main_coroutine()
- Run SQL queries
await db.execute('select $1', '1')
await db.executemany('select $1', '1', '2', '3')
records = await db.fetchall('select (2 * $1) res', 2)
assert records == [(4,)]
record = await db.fetchone('select (2 * $1) res', 2)
assert record == (4,)
assert record['res'] == 4
result = await db.fetchval('select 2 * $1', 2)
assert result == 4
- Iterate through rows one by one
async for rec in db.iterate('select name from users'):
print(rec)
- Manage connections (please ensure that you have released a connection after acquiring)
# Create a new connection object
conn = db.connection()
# or use the existing which one is binded for the current task
conn = db.connection(False)
# Acquire DB connection
await conn.acquire()
# ...
# Release DB connection
await conn.relese()
# an alternative (acquire/release as an async context)
async with db.connection():
# ...
- Use transactions
async with db.transaction() as trans1:
# do some work ...
async with db.transaction() as trans2:
# do some work ...
await trans2.rollback()
# unnessesary, the transaction will be commited on exit from the
# current context
await trans1.commit()
Bug tracker
If you have any suggestions, bug reports or annoyances please report them to the issue tracker at https://github.com/klen/aio-databases/issues
Contributing
Development of the project happens at: https://github.com/klen/aio-databases
License
Licensed under a MIT License
Project details
Unverified details
These details have not been verified by PyPIProject links
Meta
- License: MIT License (MIT)
- Author: Kirill Klenov
- Tags asyncio, databases, mysql, sqlite, postgres, postgresql
- Requires: Python >=3.7
Classifiers
- Development Status
- Framework
- Intended Audience
- License
- Programming Language
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aio-databases-0.3.3.tar.gz
.
File metadata
- Download URL: aio-databases-0.3.3.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a39c5a3a4a457ea35e0ea1f8fc6f69cc592970df06a30ef821786fd0f9a9c194 |
|
MD5 | 810c768892723e1337a099e313c9ded2 |
|
BLAKE2b-256 | ad48257005ae8a9a18e661dce285f5bdf8ae9e77af37ba809e9480a9ede80b99 |
File details
Details for the file aio_databases-0.3.3-py3-none-any.whl
.
File metadata
- Download URL: aio_databases-0.3.3-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d672fd78a958deeb1c7b25e2ac34e8a347be1ed4fee39f80137819f266c53a4 |
|
MD5 | 2e0021686e92d618c072bb0101521f50 |
|
BLAKE2b-256 | e861f4ac2b1f422e2a9e8193c8cfeaf94c0f945798e7b8d8e2a9c06f0bcde723 |