Skip to main content

Thread-safe SQLite3 worker for Python

Project description

sqlite-worker

Sqlite-Worker is a Python package providing a thread-safe interface for SQLite database operations. It ensures safe concurrent access to SQLite databases and simplifies executing database queries from different threads.

Features

  • Thread-safe SQLite database operations
  • Queue-based query execution
  • Simple and easy-to-use API
  • Initialization actions executed once upon database connection
  • Regular commits for continuous query streams

Installation

To install, run:

pip3 install sqlite-worker

Creating a Worker Instance

To create a basic instance of Sqlite3Worker by specifying the path to your SQLite database file:

from sqlite_worker import SqliteWorker
worker = SqliteWorker("/path/to/your/database.db")

Worker instance with Initialization Actions

Create a SqliteWorker instance with initialization actions (such as setting pragmas):

from sqlite_worker import SqliteWorker

init_actions = [
    "PRAGMA journal_mode=WAL;",
    "PRAGMA synchronous=NORMAL;",
    "PRAGMA temp_store=MEMORY;"
]

worker = SqliteWorker("/path/to/your/database.db", execute_init=init_actions)

Worker Instance with Regular Commits

Create a SqliteWorker instance with initialization actions and set a maximum query count for regular commits:

from sqlite_worker import SqliteWorker

init_actions = [
    "PRAGMA journal_mode=WAL;",
    "PRAGMA synchronous=NORMAL;",
    "PRAGMA temp_store=MEMORY;"
]

worker = SqliteWorker("/path/to/your/database.db", execute_init=init_actions, max_count=50)

Execute Queries

Creating a table

worker.execute("CREATE TABLE example (id INTEGER PRIMARY KEY, name TEXT)")

Inserting data

worker.execute("INSERT INTO example (name) VALUES (?)", ("Alice",))

Fetching data

token = worker.execute("SELECT * FROM example")
results = worker.fetch_results(token)
print(results)

Closing the Worker

After completing all database operations, close the worker to ensure proper cleanup:

worker.close()

Contributing

Contributions to the Sqlite-Worker are welcome! Please refer to the project's issues and pull request sections for contributions.

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

sqlite_worker-0.0.4.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

sqlite_worker-0.0.4-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file sqlite_worker-0.0.4.tar.gz.

File metadata

  • Download URL: sqlite_worker-0.0.4.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.6

File hashes

Hashes for sqlite_worker-0.0.4.tar.gz
Algorithm Hash digest
SHA256 fb140087e3fc03756f18527523d8ea68db73b1a1edd0c58383208b2414e2588e
MD5 ddb6009238f86bd6a570e25b0e4a4466
BLAKE2b-256 695b04bb5d11c15a0cb69fe15a36e0ba6b6d8546c23b4f1e036d5f21f2ef4a80

See more details on using hashes here.

File details

Details for the file sqlite_worker-0.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for sqlite_worker-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 943fb405c0738ceecc8c0173e10f041bdc6a3f972abcb55e3f5fe5b2330c5efa
MD5 6258e1ea2b6ea7ca03d7a134d7f387d0
BLAKE2b-256 a0dd54226adb200cf6370e3ca4a7bf6370d5e96d616777aa0a2829c68db93c68

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