MCPcopy Create free account
hub / github.com/apache/cassandra-python-driver / GraphSON3Serializer

Class GraphSON3Serializer

cassandra/datastax/graph/graphson.py:1070–1101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1068
1069
1070class GraphSON3Serializer(GraphSON2Serializer):
1071
1072 _serializers = GraphSON2Serializer.get_type_definitions()
1073
1074 context = None
1075 """A dict of the serialization context"""
1076
1077 def __init__(self, context):
1078 self.context = context
1079 self.user_types = None
1080
1081 def definition(self, value):
1082 serializer = self.get_serializer(value)
1083 return serializer.definition(value, self)
1084
1085 def get_serializer(self, value):
1086 """Custom get_serializer to support UDT/Tuple"""
1087
1088 serializer = super(GraphSON3Serializer, self).get_serializer(value)
1089 is_namedtuple_udt = serializer is TupleTypeIO and hasattr(value, '_fields')
1090 if not serializer or is_namedtuple_udt:
1091 # Check if UDT
1092 if self.user_types is None:
1093 try:
1094 user_types = self.context['cluster']._user_types[self.context['graph_name']]
1095 self.user_types = dict(map(reversed, user_types.items()))
1096 except KeyError:
1097 self.user_types = {}
1098
1099 serializer = UserTypeIO if (is_namedtuple_udt or (type(value) in self.user_types)) else serializer
1100
1101 return serializer
1102
1103
1104GraphSON3Serializer.register(dict, MapTypeIO)

Callers 1

_transform_paramsMethod · 0.90

Calls 1

get_type_definitionsMethod · 0.45

Tested by

no test coverage detected