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 details)

Uploaded Source

File details

Details for the file asqlite3-0.0.1.tar.gz.

File metadata

  • Download URL: asqlite3-0.0.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.2

File hashes

Hashes for asqlite3-0.0.1.tar.gz
Algorithm Hash digest
SHA256 569b26c1f69f4728434a44aeeb65bfef54dd2c605efc0f80baad94c41dfa63a0
MD5 7075e311cb6ae1526be389fab0c9735f
BLAKE2b-256 f176ace956ceb49f3f30b7211d0689df2b1dbace5f0f7df60c50532bbbe8b0a2

See more details on using hashes here.

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