try:
import pysciqlop_cache as sc
except ImportError: # pragma: no cover - platform-specific (WASM has no wheel)
# No compiled backend (e.g. WASM/Pyodide): fall back to a no-op store.
from speasy.core.cache import _noop_cache as sc
from speasy.config import index as index_cfg
from speasy.core.cache.cache import _migrate_legacy_diskcache
[docs]
class SpeasyIndex:
def __init__(self):
path = index_cfg.path()
_migrate_legacy_diskcache(path)
self._index = sc.Index(path=path)
[docs]
def get(self, module, key, default=None):
return self._index.get(f'{module}/{key}', default)
[docs]
def set(self, module, key, value):
self._index[f'{module}/{key}'] = value
[docs]
def pop(self, module, key):
return self._index.pop(f'{module}/{key}')
[docs]
def contains(self, module, key):
return f'{module}/{key}' in self._index