feat: improve civitai data handling and type safety, fixes #565

- Replace setdefault with get and explicit dict initialization in MetadataUpdater
- Change civitai field type from Optional[Dict] to Dict[str, Any] with default_factory
- Add None check and dict initialization in BaseModelMetadata.__post_init__
- Ensures civitai data is always a dictionary, preventing type errors and improving code reliability
This commit is contained in:
Will Miao
2025-10-14 16:03:33 +08:00
parent c48095d9c6
commit 3d98572a62
3 changed files with 48 additions and 3 deletions

View File

@@ -270,7 +270,12 @@ class MetadataUpdater:
"""
try:
await MetadataManager.hydrate_model_data(model_data)
civitai_data = model_data.setdefault('civitai', {})
civitai_data = model_data.get('civitai')
if not isinstance(civitai_data, dict):
civitai_data = {}
model_data['civitai'] = civitai_data
custom_images = civitai_data.get('customImages')
if not isinstance(custom_images, list):
@@ -446,4 +451,4 @@ class MetadataUpdater:
except Exception as e:
logger.error(f"Error parsing image metadata: {e}", exc_info=True)
return None
return None