2ec1080ac9
Reviewers: florijan, mislav.bradac, buda Reviewed By: mislav.bradac Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D619
46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
import gdb
|
|
import gdb.printing
|
|
|
|
|
|
def build_memgraph_pretty_printers():
|
|
'''Instantiate and return all memgraph pretty printer classes.'''
|
|
pp = gdb.printing.RegexpCollectionPrettyPrinter('memgraph')
|
|
pp.add_printer('query::TypedValue', '^query::TypedValue$', TypedValuePrinter)
|
|
return pp
|
|
|
|
|
|
class TypedValuePrinter(gdb.printing.PrettyPrinter):
|
|
'''Pretty printer for query::TypedValue'''
|
|
def __init__(self, val):
|
|
super(TypedValuePrinter, self).__init__('TypedValue')
|
|
self.val = val
|
|
|
|
def to_string(self):
|
|
def _to_str(val):
|
|
return '{%s %s}' % (value_type, self.val[val])
|
|
value_type = str(self.val['type_'])
|
|
if value_type == 'query::TypedValue::Type::Null':
|
|
return '{%s}' % value_type
|
|
elif value_type == 'query::TypedValue::Type::Bool':
|
|
return _to_str('bool_v')
|
|
elif value_type == 'query::TypedValue::Type::Int':
|
|
return _to_str('int_v')
|
|
elif value_type == 'query::TypedValue::Type::Double':
|
|
return _to_str('double_v')
|
|
elif value_type == 'query::TypedValue::Type::String':
|
|
return _to_str('string_v')
|
|
elif value_type == 'query::TypedValue::Type::List':
|
|
return _to_str('list_v')
|
|
elif value_type == 'query::TypedValue::Type::Map':
|
|
return _to_str('map_v')
|
|
elif value_type == 'query::TypedValue::Type::Vertex':
|
|
return _to_str('vertex_v')
|
|
elif value_type == 'query::TypedValue::Type::Edge':
|
|
return _to_str('edge_v')
|
|
elif value_type == 'query::TypedValue::Type::Path':
|
|
return _to_str('path_v')
|
|
return '{%s}' % value_type
|
|
|
|
gdb.printing.register_pretty_printer(None, build_memgraph_pretty_printers(),
|
|
replace=True)
|