code: def get_measurement_columns(self, pipeline):
      columns = []
      if self.contrast_choice == BY_SINGLE_MEASUREMENT:
          for group in self.single_measurements:
              columns += [
                  (
                      IMAGE,
                      "_".join(
                          (M_CATEGORY, feature_name, F_NUM_PER_BIN)
                      ),
                      COLTYPE_INTEGER,
                  )
                  for feature_name in group.bin_feature_names()
              ]
              columns += [
                  (
                      IMAGE,
                      "_".join(
                          (M_CATEGORY, feature_name, F_PCT_PER_BIN)
                      ),
                      COLTYPE_FLOAT,
                  )
                  for feature_name in group.bin_feature_names()
              ]
              columns += [
                  (
                      group.object_name.value,
                      "_".join((M_CATEGORY, feature_name)),
                      COLTYPE_INTEGER,
                  )
                  for feature_name in group.bin_feature_names()
              ]
      elif self.contrast_choice == BY_TWO_MEASUREMENTS:
          names = self.get_feature_name_matrix()
          columns += [
              (
                  IMAGE,
                  "_".join((M_CATEGORY, name, F_NUM_PER_BIN)),
                  COLTYPE_INTEGER,
              )
              for name in names.flatten()
          ]
          columns += [
              (
                  IMAGE,
                  "_".join((M_CATEGORY, name, F_PCT_PER_BIN)),
                  COLTYPE_FLOAT,
              )
              for name in names.flatten()
          ]
          columns += [
              (
                  self.object_name.value,
                  "_".join((M_CATEGORY, name)),
                  COLTYPE_INTEGER,
              )
              for name in names.flatten()
          ]
      else:
          columns += [
              (
                  IMAGE,
                  f"{M_CATEGORY}_{FF_COUNT % label}",
                  COLTYPE_INTEGER,
              )
              for label in self.get_bin_labels()
          ]
          columns += [
              (
                  self.object_name.value,
                  f"{M_CATEGORY}_Class",
                  COLTYPE_VARCHAR,
              )
          ]
          columns += [
              (
                  self.object_name.value,
                  f"{M_CATEGORY}_Probability_{label}",
                  COLTYPE_FLOAT,
              )
              for label in self.get_bin_labels()
          ]
          if self.create_class_sets.value:
              for group in self.desired_classes:
                  columns += ImageSegmentation.get_measurement_columns(
                      self, pipeline, group.class_objects_name.value
                  )
                  columns += [
                      (
                          self.object_name.value,
                          FF_CHILDREN_COUNT
                          % group.class_objects_name.value,
                          COLTYPE_INTEGER,
                      ),
                      (
                          group.class_objects_name.value,
                          FF_PARENT % self.object_name.value,
                          COLTYPE_INTEGER,
                      ),
                  ]
      return columns
  
imports: import functools
  import os
  import numpy
  from cellprofiler.modules import _help
  from cellprofiler.utilities.rules import Rules
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT, M_LOCATION_CENTER_X, M_LOCATION_CENTER_Y, COLTYPE_VARCHAR, C_COUNT, C_CHILDREN, C_LOCATION, C_NUMBER, C_PARENT, FTR_OBJECT_NUMBER, FTR_CENTER_X, FTR_CENTER_Y, FTR_CENTER_Z
  from cellprofiler_core.constants.measurement import COLTYPE_INTEGER
  from cellprofiler_core.constants.measurement import IMAGE
  from cellprofiler_core.image import Image
  from cellprofiler_core.module import Module
  from cellprofiler_core.object import Objects
  from cellprofiler_core.preferences import get_default_colormap, get_headless
  from cellprofiler_core.setting import Binary
  from cellprofiler_core.setting import Divider
  from cellprofiler_core.setting import HiddenCount
  from cellprofiler_core.setting import Measurement
  from cellprofiler_core.setting import SettingsGroup
  from cellprofiler_core.setting import ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.do_something import DoSomething
  from cellprofiler_core.setting.do_something import RemoveSettingButton
  from cellprofiler_core.setting.subscriber import LabelSubscriber
  from cellprofiler_core.setting.text import Alphanumeric, Directory, Filename, LabelName
  from cellprofiler_core.setting.text import Float
  from cellprofiler_core.setting.text import ImageName
  from cellprofiler_core.setting.text import Integer
  from cellprofiler_core.setting.text import Text
  from cellprofiler_core.constants.measurement import FF_CHILDREN_COUNT
  from cellprofiler_core.constants.measurement import FF_COUNT
  from cellprofiler_core.constants.measurement import FF_PARENT
  from cellprofiler_core.module.image_segmentation import ImageSegmentation
label_desc: Use image node_id 27 for calling the ClassifyObjects obj's underlying member method code with example usage: obj.get_measurement_columns(pipeline) and returns: columns