You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1015 B

"""Storage handers."""
from homeassistant.helpers.json import JSONEncoder
from homeassistant.helpers.storage import Store
from .hacsbase.const import STORAGE_VERSION
async def async_load_from_store(hass, key):
"""Load the retained data from store and return de-serialized data."""
key = key if "/" in key else f"hacs.{key}"
store = Store(hass, STORAGE_VERSION, key, encoder=JSONEncoder)
restored = await store.async_load()
if restored is None:
return {}
return restored
async def async_save_to_store(hass, key, data):
"""Generate dynamic data to store and save it to the filesystem."""
key = key if "/" in key else f"hacs.{key}"
store = Store(hass, STORAGE_VERSION, key, encoder=JSONEncoder)
await store.async_save(data)
async def async_remove_store(hass, key):
"""Remove a store element that should no longer be used"""
if "/" not in key:
return
store = Store(hass, STORAGE_VERSION, key, encoder=JSONEncoder)
await store.async_remove()

Powered by TurnKey Linux.