Skip to main content

A Rust-powered Python library for scheduled SQLite operations.

Project description

sqlite-scheduler

A Rust-powered Python library for scheduled SQLite operations.

  • Python 3.9+
  • Rust-backed SQLite I/O via rusqlite
  • Built-in interval scheduler running in a native thread
  • Optional integration with the popular Python schedule package

Build

maturin develop

Usage

With the Python schedule package

import sqlite_scheduler
import schedule
import time

def job():
    sqlite_scheduler.execute_sql(
        "app.db",
        "INSERT INTO logs(msg) VALUES (?)",
        parameters=["heartbeat"],
    )

schedule.every(10).seconds.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

With the built-in scheduler

from sqlite_scheduler import SqliteScheduler

scheduler = SqliteScheduler("app.db")
scheduler.add_interval_job(10, "INSERT INTO logs(msg) VALUES ('tick')")
scheduler.start(blocking=False)
# ...
scheduler.stop()

Basic CRUD

import sqlite_scheduler

sqlite_scheduler.execute_sql(
    "app.db",
    "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)",
)

rows = sqlite_scheduler.execute_sql(
    "app.db", "SELECT * FROM users", fetch=True
)
print(rows)  # [{'id': 1, 'name': 'Alice'}, ...]

Run tests

pytest

Examples

See the examples/ directory.

python examples/basic_crud.py
python examples/builtin_scheduler.py
python examples/with_schedule_package.py

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlite_scheduler-0.1.2-cp39-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9+Windows x86-64

File details

Details for the file sqlite_scheduler-0.1.2-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for sqlite_scheduler-0.1.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0688575b79ae61a9d6bc7492b65a06d187c6cdb0d0b5fc67f9588b774dd358fa
MD5 4600badf99f61db17bde0d249be54670
BLAKE2b-256 74a7e67b874393337c7d8932fd377a7ef58c9133ea59e45452ff8ce2f70600fd

See more details on using hashes here.

Supported by

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