Skip to main content

An async sqlite3 module

Project description

Purpose

An asynchronous way to connect to an sqlite3 database. Normally, this would block the asyncio event loop and slow down the execution speed of the script. This is because asyncio isn’t meant for I/O bound tasks. threading is more efficient for that, which is exactly why this module uses it under the hood.

Features

  • A similar syntax to the sqlite3 module in the Standard library

  • Has asyncio idioms such as async for, await, and async with

  • Provides all features of the built-in sqlite3 module

Installation

Installing asqlite3 should be done through PIP:

$ pip install asqlite3

Make sure you have Python version 3.6+ before installing!

Contributing

Contributions are always encouraged and open.

Examples

import asyncio

import asqlite3

conn = asqlite3.connect(':memory:')

async def connection():
    async with conn:
        await conn.execute("CREATE TABLE table (plate INT)")
        await conn.execute("INSERT INTO table VALUES (5)")
    # connection is automatically closed

loop = asyncio.get_event_loop()
loop.run_until_complete(connection())
import asyncio

import asqlite3

conn = asqlite3.connect(':memory:')

async def cursor():
    cur = await conn.cursor()
    rows = [i async for i in cur]
    return rows

loop = asyncio.get_event_loop()
loop.run_until_complete(cursor())

License

asqlite is currently under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

asqlite3-0.0.1.tar.gz (5.8 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page