Reworked sdp
This commit is contained in:
@@ -20,8 +20,8 @@ def json_default_converter(o):
|
||||
|
||||
@dataclass()
|
||||
class SerializerContext:
|
||||
user_name: str
|
||||
origin: str
|
||||
user_name: str = None
|
||||
origin: str = None
|
||||
|
||||
|
||||
class Serializer:
|
||||
@@ -37,7 +37,7 @@ class Serializer:
|
||||
|
||||
# add builtin serializers
|
||||
self.register(EventSerializer())
|
||||
self.register(PickleSerializer())
|
||||
self.register(StateSerializer())
|
||||
self.register(ConceptSerializer())
|
||||
|
||||
def register(self, serializer):
|
||||
@@ -205,11 +205,12 @@ class ObjectSerializer(BaseSerializer):
|
||||
|
||||
class PickleSerializer(BaseSerializer):
|
||||
|
||||
def __init__(self):
|
||||
BaseSerializer.__init__(self, "P", 1)
|
||||
def __init__(self, predicate, name="P", version=1):
|
||||
BaseSerializer.__init__(self, name, version)
|
||||
self.predicate = predicate
|
||||
|
||||
def match(self, obj):
|
||||
return BaseSerializer.get_full_qualified_name(obj) == "sdp.sheerkaDataProvider.State"
|
||||
return self.predicate(obj)
|
||||
|
||||
def dump(self, stream, obj, context):
|
||||
stream.write(pickle.dumps(obj))
|
||||
@@ -220,6 +221,12 @@ class PickleSerializer(BaseSerializer):
|
||||
return pickle.loads(stream.read())
|
||||
|
||||
|
||||
class StateSerializer(PickleSerializer):
|
||||
def __init__(self, ):
|
||||
PickleSerializer.__init__(self, lambda obj: BaseSerializer.get_full_qualified_name(
|
||||
obj) == "sdp.sheerkaDataProvider.State", "S", 1)
|
||||
|
||||
|
||||
class ConceptSerializer(ObjectSerializer):
|
||||
def __init__(self):
|
||||
ObjectSerializer.__init__(self, "core.concept.Concept", "C", 1)
|
||||
|
||||
Reference in New Issue
Block a user