import json from typing import TypeVar from redis.asyncio import Redis r = Redis(host="localhost", port=6379, db=5) _T = TypeVar("_T", str, int, float, bool, dict) async def upset_setting(key: str, value: _T | None = None) -> _T | None: if value is not None: val = json.dumps(value) await r.set(key, val) return value val = await r.get(key) if val: return json.loads(val) return None