code: def complete_object_value(
      exe_context, return_type, field_asts, info, result
  ):
      """
      Complete an Object value by evaluating all sub-selections.
      """
      if return_type.is_type_of and not return_type.is_type_of(
          result, exe_context.context_value, info
      ):
          raise GraphQLError(
              'Expected value of type "{}" but got: {}.'.format(
                  return_type, type(result).__name__
              ),
              field_asts,
          )
  
      # Collect sub-fields to execute to complete this value.
      subfield_asts = exe_context.get_sub_fields(
          return_type, field_asts
      )
      return execute_fields(
          exe_context, return_type, result, subfield_asts
      )
  
imports: import collections
  from collections.abc import Iterable
  import functools
  import logging
  import sys
  from wandb_promise import Promise, promise_for_dict, is_thenable
  from ..error import GraphQLError, GraphQLLocatedError
  from ..pyutils.default_ordered_dict import DefaultOrderedDict
  from ..pyutils.ordereddict import OrderedDict
  from ..type import GraphQLEnumType, GraphQLInterfaceType, GraphQLList, GraphQLNonNull, GraphQLObjectType, GraphQLScalarType, GraphQLSchema, GraphQLUnionType
  from .base import ExecutionContext, ExecutionResult, ResolveInfo, Undefined, collect_fields, default_resolve_fn, get_field_def, get_operation_root_type
  from .executors.sync import SyncExecutor
  from .experimental.executor import execute
  from .middleware import MiddlewareManager
label_desc: Use image node_id 13 for calling a global function with example usage: complete_object_value(exe_context, return_type, field_asts, info, result) and returns: execute_fields