# sec_interp.core.data_cache module

class sec_interp.core.data_cache.DataCache

  Bases: `object`

  Cache for storing processed profile data.

  This cache stores topographic, geological, and structural profile data to avoid redundant processing when parameters haven’t changed.

  Initialize empty cache.

  __init__() → None

    Initialize empty cache.

  get_cache_key(params: dict[str, Any]) → str

    Generate a unique cache key from parameters.

    Parameters:

      params – Dictionary of input parameters

    Returns:

      String representation of the parameters hash

  get(key: str) → dict[str, Any] | None

    Get all cached data for a key.

    Parameters:

      key – Cache key

    Returns:

      Dictionary with profile_data, geol_data, struct_data or None if not found

  set(key: str, data: dict[str, Any]) → None

    Set all cache data for a key.

    Parameters:

      - key – Cache key

      - data – Dictionary containing profile_data, geol_data, etc.

  get_topographic_profile(key: str) → list[tuple[float, float]] | None

    Get cached topographic profile data.

    Parameters:

      key – Cache key (typically hash of input parameters)

    Returns:

      Cached profile data or None if not found

  set_topographic_profile(key: str, data: list[tuple[float, float]]) → None

    Store topographic profile data in cache.

    Parameters:

      - key – Cache key

      - data – Profile data to cache

  get_geological_profile(key: str) → list[GeologySegment] | None

    Get cached geological profile data.

    Parameters:

      key – Cache key

    Returns:

      Cached geology data or None if not found

  set_geological_profile(key: str, data: list[GeologySegment]) → None

    Store geological profile data in cache.

    Parameters:

      - key – Cache key

      - data – Geology data to cache

  get_structural_data(key: str) → list[StructureMeasurement] | None

    Get cached structural data.

    Parameters:

      key – Cache key

    Returns:

      Cached structure data or None if not found

  set_structural_data(key: str, data: list[StructureMeasurement]) → None

    Store structural data in cache.

    Parameters:

      - key – Cache key

      - data – Structure data to cache

  get_metadata(key: str) → dict[str, Any] | None

    Get cached metadata for a profile.

    Parameters:

      key – Cache key

    Returns:

      Cached metadata or None if not found

  set_metadata(key: str, metadata: dict[str, Any]) → None

    Store metadata for a profile.

    Parameters:

      - key – Cache key

      - metadata – Metadata dictionary to cache

  invalidate(pattern: str | None = None) → None

    Invalidate cache entries.

    Parameters:

      pattern – Optional pattern to match keys. If None, clears all cache.

  clear() → None

    Clear all cached data.

  get_cache_size() → dict[str, int]

    Get the size of each cache.

    Returns:

      Dictionary with cache names and their sizes