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
Hashes for sqlite_worker-0.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 943fb405c0738ceecc8c0173e10f041bdc6a3f972abcb55e3f5fe5b2330c5efa |
|
MD5 | 6258e1ea2b6ea7ca03d7a134d7f387d0 |
|
BLAKE2b-256 | a0dd54226adb200cf6370e3ca4a7bf6370d5e96d616777aa0a2829c68db93c68 |