def dictify(cls, obj, writer, to_extend, as_value=False, nullable=True): cls.prefix_bytes(cls.graphbinary_type, as_value, nullable, to_extend) ClassSerializer.dictify(GremlinType(obj.fqcn), writer, to_extend, True, False) conf = {k: cls._convert(v) for k, v in obj.configuration.items()} MapIO.dictify(conf, writer, to_extend, True, False) return to_extend
def dictify(cls, obj, writer, to_extend, as_value=False, nullable=True): cls.prefix_bytes(cls.graphbinary_type, as_value, nullable, to_extend) bc = obj.bytecode if isinstance(obj, Traversal) else obj to_extend.extend(int32_pack(len(bc.step_instructions))) for inst in bc.step_instructions: inst_name, inst_args = inst[0], inst[1:] if len(inst) > 1 else [] StringIO.dictify(inst_name, writer, to_extend, True, False) to_extend.extend(int32_pack(len(inst_args))) for arg in inst_args: writer.toDict(arg, to_extend) to_extend.extend(int32_pack(len(bc.source_instructions))) for inst in bc.source_instructions: inst_name, inst_args = inst[0], inst[1:] if len(inst) > 1 else [] StringIO.dictify(inst_name, writer, to_extend, True, False) to_extend.extend(int32_pack(len(inst_args))) for arg in inst_args: if isinstance(arg, TypeType): writer.toDict(GremlinType(arg().fqcn), to_extend) else: writer.toDict(arg, to_extend) return to_extend