Asynchronous driver for sqlite3.
Project description
asyncsqlite3 - asynchronous driver for sqlite3.
Asynchronous interface with context managers for sqlite database:
async with asyncsqlite3.connect(...) as conn:
async with conn.execute("INSERT INTO some_table ..."):
await conn.commit()
async with conn.execute("SELECT * FROM some_table") as cursor:
rows = await cursor.fetchall()
And without context managers:
conn = await asyncsqlite3.connect(...)
cursor = await conn.execute("SELECT * FROM some_table")
rows = await cursor.fetchall()
await cursor.close()
await conn.close()
Connection pool and transaction:
async with asyncsqlite3.create_pool(..., min_size=1, max_size=2) as pool:
async with pool.acquire(timeout=1.5) as conn: # You can use a timeout when getting a connection from queue.
async with conn.transaction():
async with conn.execute("INSERT INTO some_table ..."):
...
async with pool.acquire() as conn:
async with conn.execute("SELECT id, name FROM some_table") as cursor:
async for row in cursor:
print(row) # <Record id=1 name='alex'>
print(row[0], row["id"], row.get("id")) # 1 1 1
print(dict(row)) # {'id': 1, 'name': 'alex'}
print(tuple(row), list(row), set(row)) # (1, 'alex') [1, 'alex'] {1, 'alex'}
Installation
asyncsqlite3 is compatible with Python 3.7 and newer. Use pip to install:
$ pip install asyncsqlite3
You can speed up asyncsqlite3 as follows:
$ pip install asyncsqlite3[uvloop]
Details
How you see this module very look like aiosqlite and asyncpg.
Implicit transactions are turned off, but you can use Connection method transaction
.
License
MIT
Project details
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
asyncsqlite3-0.1.5.tar.gz
(11.7 kB
view details)
File details
Details for the file asyncsqlite3-0.1.5.tar.gz
.
File metadata
- Download URL: asyncsqlite3-0.1.5.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0a0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2911e322103514e7fe98e9c6bfcd99405654d5286f14dc888d0e8c92be432bd1 |
|
MD5 | 28fefe7bd6a0300591e7e3159a3b9def |
|
BLAKE2b-256 | 936b554b9f897cd717744bef59f45c37c5ae8b54beb4ccae43059ae9e6f905e9 |