1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
def attr_resolver(attname, default_value, root, info, **args):
return getattr(root, attname, default_value)
def dict_resolver(attname, default_value, root, info, **args):
return root.get(attname, default_value)
def dict_or_attr_resolver(attname, default_value, root, info, **args):
resolver = dict_resolver if isinstance(root, dict) else attr_resolver
return resolver(attname, default_value, root, info, **args)
default_resolver = dict_or_attr_resolver
def set_default_resolver(resolver):
global default_resolver
assert callable(resolver), "Received non-callable resolver."
default_resolver = resolver
def get_default_resolver():
return default_resolver
|