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
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb140087e3fc03756f18527523d8ea68db73b1a1edd0c58383208b2414e2588e |
|
MD5 | ddb6009238f86bd6a570e25b0e4a4466 |
|
BLAKE2b-256 | 695b04bb5d11c15a0cb69fe15a36e0ba6b6d8546c23b4f1e036d5f21f2ef4a80 |
File details
Details for the file sqlite_worker-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: sqlite_worker-0.0.4-py3-none-any.whl
- Upload date:
- Size: 4.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 943fb405c0738ceecc8c0173e10f041bdc6a3f972abcb55e3f5fe5b2330c5efa |
|
MD5 | 6258e1ea2b6ea7ca03d7a134d7f387d0 |
|
BLAKE2b-256 | a0dd54226adb200cf6370e3ca4a7bf6370d5e96d616777aa0a2829c68db93c68 |