This commit is contained in:
2026-01-11 03:24:49 -08:00
parent e608b88062
commit 5985a8306a
13 changed files with 401 additions and 101 deletions

View File

@@ -80,6 +80,23 @@ def _discover_store_classes() -> Dict[str, Type[BaseStore]]:
def _required_keys_for(store_cls: Type[BaseStore]) -> list[str]:
# Support new config() schema
if hasattr(store_cls, "config") and callable(store_cls.config):
try:
schema = store_cls.config()
keys = []
if isinstance(schema, list):
for field in schema:
if isinstance(field, dict) and field.get("required"):
k = field.get("key")
if k:
keys.append(str(k))
if keys:
return keys
except Exception:
pass
# Legacy __new__.keys support
keys = getattr(store_cls.__new__, "keys", None)
if keys is None:
return []