litecache 0.1.3
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 or sys.exit(), etc
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
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
GPLv3
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.