File tree Expand file tree Collapse file tree 1 file changed +26
-1
lines changed
services/storage/src/simcore_service_storage/modules/celery Expand file tree Collapse file tree 1 file changed +26
-1
lines changed Original file line number Diff line number Diff line change 1+ from functools import partial
12from pathlib import Path
3+ from typing import Any
24
3- from kombu .utils .json import register_type # type: ignore[import-untyped]
5+ from kombu .utils .json import register_type
6+ from models_library .api_schemas_storage .storage_schemas import FileUploadCompletionBody
7+ from pydantic import BaseModel
8+ from simcore_service_storage .models import FileMetaData
49
510
611def _path_encoder (obj ):
@@ -20,10 +25,30 @@ def _class_full_name(clz: type) -> str:
2025 return "." .join ([clz .__module__ , clz .__qualname__ ])
2126
2227
28+ def _encoder (obj : BaseModel , * args , ** kwargs ) -> dict [str , Any ]:
29+ return obj .model_dump (* args , ** kwargs )
30+
31+
32+ def _decoder (clz : type [BaseModel ], data : dict [str , Any ]) -> BaseModel :
33+ return clz (** data )
34+
35+
36+ def _register_pydantic_types (* models : type [BaseModel ]) -> None :
37+ for model in models :
38+ register_type (
39+ model ,
40+ _class_full_name (model ),
41+ encoder = _encoder ,
42+ decoder = partial (_decoder , model ),
43+ )
44+
45+
2346def register_celery_types () -> None :
2447 register_type (
2548 Path ,
2649 _class_full_name (Path ),
2750 _path_encoder ,
2851 _path_decoder ,
2952 )
53+ _register_pydantic_types (FileUploadCompletionBody )
54+ _register_pydantic_types (FileMetaData )
You can’t perform that action at this time.
0 commit comments