Files
jcloud-cachelib/README.md
T

2.4 KiB

jcloud-cachelib

A simple library for caching data.

Installation

You can install the library using pip:

pip install jcloud-cachelib --index-url https://repo.jcloud-services.ddns.net/simple/

Full documentation

CacheItem

A cache item.

Params

  • value (type: Any): The value of the item
  • creation_time (type: Union[int, float]): The time the item was created

Exceptions

No exceptions.

Methods

No methods.

Cache

A thread-safe cache.

Parameters

  • generate_value_func (type: Optional[FunctionType], default: None): The function to generate a new value. It has to take one positional argument.
  • max_size (type: int, default: 256): The maximum size of the cache.
  • ttl (type: int, default: 120): The TTL (time to live) in seconds.

Exceptions

No exceptions.

Methods

set

Sets or updates an item (thread-safe).

Parameters
  • key (type: str): The key.
  • value (type: Any): The value.
Exceptions

No exceptions.

Returns

None

delete

Deletes an item (thread-safe).

Parameters
  • key (type: str): The key.
Exceptions
  • KeyError: If the item does not exist.
Returns

None

get

Returns an item (thread-safe). If the item does not exist, it uses self.generate_value_func to get the value. If no generate_value_func was specified in the constructor of the Cache object, the value will be set to None.

Parameters
  • key (type: str): The key.
Exceptions

No exceptions.

Returns

The value. Type: Any

clean_item

Removes an item if it is expired (thread-safe).

Parameters
  • key (type: key): The key
Exceptions

No exceptions.

Returns

None

clear_expired

Removes all expired items (thread-safe).

Parameters

No parameters.

Exceptions

No Exceptions.

Returns

None

clear

Removes all items (thread-safe).

Parameters

No parameters.

Exceptions

No Exceptions.

Returns

None

Changelog

Version 0.1.1

  • update package configuration

Version 0.1.0

  • initial release
  • thread safety
  • set, update, delete and get items
  • TTL
  • support for specifying a function to generate new values
  • deletion of expired items when getting them
  • deletion of the least used item when a new item is set and the maximum size is reached
  • support for clearing the cache