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
File details
Details for the file lite-cache-0.1.3.tar.gz
.
File metadata
- Download URL: lite-cache-0.1.3.tar.gz
- Upload date:
- Size: 19.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
ee9685c579b27cedb5b69cf5bd4d47d646369c08129c74a271b96c7d200ad302
|
|
MD5 |
c0004f04fbc5df9acbaef682273eda70
|
|
BLAKE2b-256 |
87ff6d967f5e138a5216bc850bee25d10ae99b1b9df2ba3be259342285b3ab19
|
File details
Details for the file lite_cache-0.1.3-py3-none-any.whl
.
File metadata
- Download URL: lite_cache-0.1.3-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.8+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f2223e7ee2a33c8ffe16c3e7aacf1c8d79c2dec32616e082694f4e06ab09d7ee
|
|
MD5 |
0558bb4a4c02c2ab8070a6239206a892
|
|
BLAKE2b-256 |
7c9fe71a7aa88cd177c57e9c2df91fed392c120f42614f31f6733b10ef7a76a1
|