code: def load_primitive_from_file(filepath):
      """load primitive objects in a file"""
      module = os.path.basename(filepath)[:-3]
      # TODO: what is the first argument"?
      spec = importlib.util.spec_from_file_location(module, filepath)
      module = importlib.util.module_from_spec(spec)
      spec.loader.exec_module(module)
  
      primitives = []
      for primitive_name in vars(module):
          primitive_class = getattr(module, primitive_name)
          if (
              isclass(primitive_class)
              and issubclass(primitive_class, PrimitiveBase)
              and primitive_class
              not in (AggregationPrimitive, TransformPrimitive)
          ):
              primitives.append((primitive_name, primitive_class))
  
      if len(primitives) == 0:
          raise RuntimeError(
              "No primitive defined in file %s" % filepath
          )
      elif len(primitives) > 1:
          raise RuntimeError(
              "More than one primitive defined in file %s" % filepath
          )
  
      return primitives[0]
  
imports: import importlib.util
  import os
  from inspect import getfullargspec, getsource, isclass
  from typing import Dict, List
  import pandas
  from woodwork import list_logical_types, list_semantic_tags, type_system
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import NaturalLanguage
  import featuretools
  from featuretools.primitives import NumberOfCommonWords
  from featuretools.primitives.base import AggregationPrimitive, PrimitiveBase, TransformPrimitive
  from featuretools.utils.gen_utils import Library, find_descendents
label_desc: Use image node_id 17 for calling a global function with example usage: load_primitive_from_file(filepath) and returns: primitives