Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 15 additions & 42 deletions sampo/schemas/serializable.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ class JSONSerializable(Serializable[dict[str,
object from JSON format
:param Serialize: structure of JSON input variable for descendants of the class
:param ABC: helper class to create custom abstract classes
:param Generic[JS]: base class to make JSONSerializable as universal class,
:param Generic[JS]: base class to make JSONSerializable as universal class,
using user's types JS and it's descendants
"""

Expand Down Expand Up @@ -278,50 +278,23 @@ class AutoJSONSerializable(JSONSerializable[AJS], ABC):
"""
serializer_extension: str = 'json'

_default_serializers_deserializers = {
'serializers':
{
str(np.ndarray): default_ndarray_serializer,
str(pd.DataFrame): default_dataframe_serializer,
str(np.int32): default_np_int_serializer,
str(np.int64): default_np_long_serializer,
},
'deserializer':
{
str(np.ndarray): default_ndarray_deserializer,
str(pd.DataFrame): default_dataframe_deserializer,
str(np.int32): default_np_int_deserializer,
str(np.int64): default_np_long_deserializer,
}
_default_serializers = {
str(np.ndarray): default_ndarray_serializer,
str(pd.DataFrame): default_dataframe_serializer,
str(np.int32): default_np_int_serializer,
str(np.int64): default_np_long_serializer,
}

@classmethod
@property
def _default_serializers(cls) -> dict:
"""
:param cls: current class (predecessors of parent class AutoJSONSerializable)
:return: dict: dictionary of serialization methods
"""
return cls._default_serializers_deserializers['serializers']

@classmethod
@property
def _default_deserializers(cls):
"""
:param cls: current class (predecessors of parent class AutoJSONSerializable)
:return: dictionary of deserialization methods
"""
return cls._default_serializers_deserializers['deserializer']
_default_deserializers = {
str(np.ndarray): default_ndarray_deserializer,
str(pd.DataFrame): default_dataframe_deserializer,
str(np.int32): default_np_int_deserializer,
str(np.int64): default_np_long_deserializer,
}

@classmethod
@property
def ignored_fields(cls) -> list:
"""
Return list of fields, which not be included to JSON representation (needed for client interface
and Draw Schedule system)
:return: list of fields
"""
return []
# Return list of fields, which not be included to JSON representation
# (needed for client interfaceand Draw Schedule system)
ignored_fields = []

def _serialize(self) -> dict[str,
Union[
Expand Down