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.1.tar.gz
(11.6 kB
view details)
File details
Details for the file asyncsqlite3-0.1.1.tar.gz
.
File metadata
- Download URL: asyncsqlite3-0.1.1.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.0a0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 971a4d9c925dcb72cb702b3caf3365d55d3796cfd1e22c3e0c6612a3b697576b |
|
MD5 | f045167e7b9864d7f4db9a30ef92b8d3 |
|
BLAKE2b-256 | f3751105af938ab894377c3a9fe86db0207a17abc747c588d4f2932cb6be57be |