code: def resolve(self, root):
      if root and not self.have_type(root):
          raise GraphQLError(
              'Expected value of type "{}" but got: {}.'.format(
                  self.type, type(root).__name__
              ),
              self.info.field_asts,
          )
  
      contains_promise = False
  
      final_results = self.fragment_container()
      # return OrderedDict(
      #     ((field_name, field_resolver(root, field_args, context, info))
      #         for field_name, field_resolver, field_args, context, info in self.partial_resolvers)
      # )
      for response_name, field_resolver in self.partial_resolvers:
          result = field_resolver.execute(root)
          if result is Undefined:
              continue
  
          if not contains_promise and is_thenable(result):
              contains_promise = True
  
          final_results[response_name] = result
  
      if not contains_promise:
          return final_results
  
      return promise_for_dict(final_results)
  
imports: import functools
  from wandb_promise import Promise, is_thenable, promise_for_dict
  from ...pyutils.cached_property import cached_property
  from ...pyutils.default_ordered_dict import DefaultOrderedDict
  from ...type import GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLUnionType
  from ..base import ResolveInfo, Undefined, collect_fields, get_field_def
  from ..values import get_argument_values
  from ...error import GraphQLError
label_desc: Use image node_id 5 for calling the Fragment obj's underlying member method code with example usage: obj.resolve(root) and returns: promise_for_dict, final_results