Skip to main content

cache.cache

Cache

class Cache(AbstractCache)

A wrapper class for managing cache configuration and instances.

This class provides a unified interface for creating and interacting with different types of cache (e.g., Redis, Disk). It abstracts the underlying cache implementation details, providing methods for cache operations.

Attributes:

  • config Dict[str, Any] - A dictionary containing cache configuration.
  • cache - The cache instance created based on the provided configuration.

redis

@staticmethod
def redis(cache_seed: Union[str, int] = 42,
redis_url: str = "redis://localhost:6379/0") -> "Cache"

Create a Redis cache instance.

Arguments:

  • cache_seed Union[str, int], optional - A seed for the cache. Defaults to 42.
  • redis_url str, optional - The URL for the Redis server. Defaults to "redis://localhost:6379/0".

Returns:

  • Cache - A Cache instance configured for Redis.

disk

@staticmethod
def disk(cache_seed: Union[str, int] = 42,
cache_path_root: str = ".cache") -> "Cache"

Create a Disk cache instance.

Arguments:

  • cache_seed Union[str, int], optional - A seed for the cache. Defaults to 42.
  • cache_path_root str, optional - The root path for the disk cache. Defaults to ".cache".

Returns:

  • Cache - A Cache instance configured for Disk caching.

cosmos_db

@staticmethod
def cosmos_db(connection_string: Optional[str] = None,
container_id: Optional[str] = None,
cache_seed: Union[str, int] = 42,
client: Optional[any] = None) -> "Cache"

Create a Cosmos DB cache instance with 'autogen_cache' as database ID.

Arguments:

  • connection_string str, optional - Connection string to the Cosmos DB account.
  • container_id str, optional - The container ID for the Cosmos DB account.
  • cache_seed Union[str, int], optional - A seed for the cache.
  • client - Optional[CosmosClient]: Pass an existing Cosmos DB client.

Returns:

  • Cache - A Cache instance configured for Cosmos DB.

__init__

def __init__(config: Dict[str, Any])

Initialize the Cache with the given configuration.

Validates the configuration keys and creates the cache instance.

Arguments:

  • config Dict[str, Any] - A dictionary containing the cache configuration.

Raises:

  • ValueError - If an invalid configuration key is provided.

__enter__

def __enter__() -> "Cache"

Enter the runtime context related to the cache object.

Returns:

The cache instance for use within a context block.

__exit__

def __exit__(exc_type: Optional[Type[BaseException]],
exc_value: Optional[BaseException],
traceback: Optional[TracebackType]) -> None

Exit the runtime context related to the cache object.

Cleans up the cache instance and handles any exceptions that occurred within the context.

Arguments:

  • exc_type - The exception type if an exception was raised in the context.
  • exc_value - The exception value if an exception was raised in the context.
  • traceback - The traceback if an exception was raised in the context.

get

def get(key: str, default: Optional[Any] = None) -> Optional[Any]

Retrieve an item from the cache.

Arguments:

  • key str - The key identifying the item in the cache.
  • default optional - The default value to return if the key is not found. Defaults to None.

Returns:

The value associated with the key if found, else the default value.

set

def set(key: str, value: Any) -> None

Set an item in the cache.

Arguments:

  • key str - The key under which the item is to be stored.
  • value - The value to be stored in the cache.

close

def close() -> None

Close the cache.

Perform any necessary cleanup, such as closing connections or releasing resources.