Simple key-value cache for Python3 using SQLite3.
Project description
lite-cache
Branch | Build Status |
---|---|
master |
|
develop |
Simple sqlite key-value storage for Python3.
Python3 module for caching data during a program's runtime, with optional persistence.
Features
- Program specific cache.
- Simple encoding of data using standard
json
package. - Optional persistence of data across multiple executions.
- Useful for keeping some runtime data available to a program after a full exit.
- ex.
raise Exception
orsys.exit()
, etc
- ex.
- Useful for keeping some runtime data available to a program after a full exit.
Installation (from PyPI, with PIP)
lite-cache
requires Python >= 3.6.
- If not already installed, install pip for Python 3
- Install
lite_cache
$ pip3 install lite-cache
Usage
To use in default configuration:
- Entire cache is in 1 database file,
~/.local/litecache/cache.db
To use in custom configuration:
import lite_cache
program_cache = lite_cache.LiteCache(name='MyProgramCache', location='~/.local/litecache')
# This initializes and creates a new Sqlite3 database file in `location` directory,
# named as "`name`.cache".
# If directory does not exist, error is raised.
This strategy of having unique caches for each program is designed to navigate "same thread" or "single thread" issues with Python & Sqlite3.
- This would not prevent issues occurring if multiple instances of the same program were launched on the same machine.
- ie. Executing same Python script in 2 terminal tabs. This would lead to two(2) threads attempting to access one(1) Sqlite3 with same
name
- ie. Executing same Python script in 2 terminal tabs. This would lead to two(2) threads attempting to access one(1) Sqlite3 with same
Development
This project uses pipenv
for managing virtual-environments and Python3 dependencies for development and testing.
- Reference: https://pypi.org/project/pipenv/
The standard requirements.txt
is included for installation via setup.py
Tests
- Uses
unittests
Run all tests from setup.py
pipenv run python setup.py test
Run specific test
pipenv run python -m unittest tests/test_main.py
Plans
- Interface for handling Python+Sqlite3 thread limitations.
- Data compression options
License
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 lite_cache-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2223e7ee2a33c8ffe16c3e7aacf1c8d79c2dec32616e082694f4e06ab09d7ee |
|
MD5 | 0558bb4a4c02c2ab8070a6239206a892 |
|
BLAKE2b-256 | 7c9fe71a7aa88cd177c57e9c2df91fed392c120f42614f31f6733b10ef7a76a1 |