code: def warn_unused_primitives(unused_primitives):
      messages = [
          "  trans_primitives: {}\n",
          "  agg_primitives: {}\n",
          "  groupby_trans_primitives: {}\n",
          "  where_primitives: {}\n",
      ]
      unused_string = ""
      for primitives, message in zip(unused_primitives, messages):
          if primitives:
              unused_string += message.format(primitives)
  
      warning_msg = (
          "Some specified primitives were not used during DFS:\n{}".format(
              unused_string
          )
          + "This may be caused by a using a value of max_depth that is too small, not setting interesting values, "
          + "or it may indicate no compatible columns for the primitive were found in the data. If the DFS call "
          + "contained multiple instances of a primitive in the list above, none of them were used."
      )
  
      warnings.warn(warning_msg, UnusedPrimitiveWarning)
  
file_path: featuretools/featuretools/synthesis/dfs.py
imports: import warnings
  from featuretools.computational_backends import calculate_feature_matrix
  from featuretools.entityset import EntitySet
  from featuretools.exceptions import UnusedPrimitiveWarning
  from featuretools.synthesis.deep_feature_synthesis import DeepFeatureSynthesis
  from featuretools.synthesis.utils import _categorize_features, get_unused_primitives
  from featuretools.utils import entry_point
label_desc: Use image node_id 2 for calling a global function with example usage: warn_unused_primitives(unused_primitives) without return types