11import dataclasses
2- from typing import TYPE_CHECKING , Callable
2+ from typing import TYPE_CHECKING , Any , Callable
33
44from docling_core .types .doc .base import CoordOrigin
55from pandas import DataFrame
1313OBJ_TYPES = {"SpanLayout" : SpanLayout , "DocLayout" : DocLayout , "PageLayout" : PageLayout }
1414
1515
16- def encode_obj (obj , chain : Callable | None = None ):
16+ def encode_obj (obj : Any , chain : Callable | None = None ) -> Any :
1717 """Convert custom dataclass to dict for serialization."""
1818 if isinstance (obj , tuple (OBJ_TYPES .values ())):
1919 result = dataclasses .asdict (obj )
@@ -22,22 +22,22 @@ def encode_obj(obj, chain: Callable | None = None):
2222 return obj if chain is None else chain (obj )
2323
2424
25- def decode_obj (obj , chain : Callable | None = None ):
25+ def decode_obj (obj : Any , chain : Callable | None = None ) -> Any :
2626 """Load custom dataclass from serialized dict."""
2727 if isinstance (obj , dict ) and obj .get (TYPE_ATTR ) in OBJ_TYPES :
2828 obj_type = obj .pop (TYPE_ATTR )
2929 return OBJ_TYPES [obj_type ].from_dict (obj )
3030 return obj if chain is None else chain (obj )
3131
3232
33- def encode_df (obj , chain : Callable | None = None ):
33+ def encode_df (obj : Any , chain : Callable | None = None ) -> Any :
3434 """Convert pandas.DataFrame for serialization."""
3535 if isinstance (obj , DataFrame ):
3636 return {"data" : obj .to_dict (), TYPE_ATTR : "DataFrame" }
3737 return obj if chain is None else chain (obj )
3838
3939
40- def decode_df (obj , chain : Callable | None = None ):
40+ def decode_df (obj : Any , chain : Callable | None = None ) -> Any :
4141 """Load pandas.DataFrame from serialized data."""
4242 if isinstance (obj , dict ) and obj .get (TYPE_ATTR ) == "DataFrame" :
4343 return DataFrame (obj ["data" ])
0 commit comments