code: def get_eligible_features(examples, num_mutants):
      """Returns a list of JSON objects for each feature in the examples.
  
      This list is used to drive partial dependence plots in the plugin.
  
      Args:
        examples: Examples to examine to determine the eligible features.
        num_mutants: The number of mutations to make over each feature.
  
      Returns:
        A list with a JSON object for each feature.
        Numeric features are represented as {name: observedMin: observedMax:}.
        Categorical features are repesented as {name: samples:[]}.
      """
      features_dict = get_numeric_features_to_observed_range(examples)
  
      features_dict.update(
          get_categorical_features_to_sampling(examples, num_mutants)
      )
  
      # Massage the features_dict into a sorted list before returning because
      # Polymer dom-repeat needs a list.
      features_list = []
      for k, v in sorted(features_dict.items()):
          v["name"] = k
          features_list.append(v)
      return features_list
  
imports: from __future__ import division
  from __future__ import print_function
  import collections
  import copy
  import json
  import math
  from absl import logging
  import numpy
  import tensorflow
  from google.protobuf import json_format
  from six import binary_type, string_types, integer_types
  from six import iteritems
  from six.moves import zip
  from inspect import signature
  from utils import common_utils
  from utils import platform_utils
  from tensorflow_serving.apis import classification_pb2
  from tensorflow_serving.apis import inference_pb2
  from tensorflow_serving.apis import regression_pb2
label_desc: Use image node_id 15 for calling a global function with example usage: get_eligible_features(examples, num_mutants) and returns: features_list