A framework for caching data locally. It features explicit caching with priority support for type hints.
Project description
typed-cache
typed-cache
is a lightweight framework designed for caching data locally, supporting explicit caching with a focus on Python's type hints. It simplifies the process of persisting data to disk by allowing easy integration into custom data classes, with automatic loading and manual saving of data.
Features
- Type Hinting: Enhances code clarity and safety through the use of Python's type hints.
- Automatic Caching: Automatically loads cached data on initialization if the file exists.
- Manual Data Saving: Allows for explicit control over when data is saved via the
save()
method. - File Integrity Checks: Ensures that cache files use the correct
.pickle
extension and manages errors properly. - Python 3.6+ Compatibility: Works with Python 3.6 and above, making it accessible for most environments.
Requirements
- Python 3.6+
- Standard libraries:
pickle
,pathlib
Installation
To install typed-cache
, you can use either pip
or poetry
:
Using pip
:
pip install typed-cache
Using poetry
:
poetry add typed-cache
Simply choose your preferred package manager to install the library.
Usage
Here's a simple script demonstrating how to use typed-cache
to persist and retrieve data in a custom class:
from dataclasses import dataclass
from pathlib import Path
from typed_cache import TypedCache
@dataclass
class Settings(TypedCache):
volume: int = 50
brightness: float = 0.8
username: str = "user"
# Specify cache file path
cache_path = Path.home() / 'settings_cache.pickle'
# Initialize settings, modify, and save
settings = Settings(path=cache_path)
settings.volume = 70
settings.save() # Saves the modified settings to 'settings_cache.pickle'
# On subsequent runs, the previous settings will be automatically loaded
loaded_settings = Settings(path=cache_path)
print(f"Loaded volume: {loaded_settings.volume}") # Output: Loaded volume: 70
Key Functions:
- Initialization: When you instantiate your class with a cache file path,
typed-cache
will automatically attempt to load data from that file. - Saving: Call
save()
on your object to persist the current state to the cache file. - Loading: Upon reinitialization with the same cache path, previously saved data will be loaded automatically.
Exception Handling
ValueError
: Raised if the cache file does not have a.pickle
extension.FileNotFoundError
: Raised if trying to load a cache file that does not exist.
Contributing
Contributions are welcome! Feel free to fork the repository, make improvements, and submit a pull request.
License
This project is licensed under the MIT 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 typed_cache-0.2.4.tar.gz
.
File metadata
- Download URL: typed_cache-0.2.4.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.11 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ed522fe57d1c881d388584b9619b82197bb25a5610d6cd098c0d9de0f01a581 |
|
MD5 | a3dbc37b7c64f6faaa580dee1a41c9d0 |
|
BLAKE2b-256 | 9d24de1e3db00d963bcb817629f087b19ef927992d0e587c379140da2b843f93 |
File details
Details for the file typed_cache-0.2.4-py3-none-any.whl
.
File metadata
- Download URL: typed_cache-0.2.4-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.11 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a37c9e58b6e3a647527c0d8757e1bf57e6e7e9096e6293f89600119a85ef6de |
|
MD5 | f7ff0897cdde69e78b81609506ded8f8 |
|
BLAKE2b-256 | 7a92b9cfdc979def56f56bbb437ecf91b1589cc657a26112a70c1dc16f41bee7 |