code: def record_measurement(
      self, workspace, image, obj, scale, feature, result, gray_levels
  ):
      result[~numpy.isfinite(result)] = 0
  
      workspace.add_measurement(
          obj,
          "{}_{}_{}_{}_{}".format(
              TEXTURE, feature, image, str(scale), gray_levels
          ),
          result,
      )
  
      # TODO: get outta crazee towne
      functions = [
          ("min", numpy.min),
          ("max", numpy.max),
          ("mean", numpy.mean),
          ("median", numpy.median),
          ("std dev", numpy.std),
      ]
  
      # TODO: poop emoji
      statistics = [
          [
              image,
              obj,
              "{} {}".format(aggregate, feature),
              scale,
              "{:.2}".format(fn(result)) if len(result) else "-",
          ]
          for aggregate, fn in functions
      ]
  
      return statistics
  
imports: import cellprofiler.gui.help.content
  import cellprofiler.icons
  import mahotas.features
  import numpy
  import skimage.exposure
  import skimage.measure
  import skimage.util
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
  from cellprofiler_core.module import Module
  from cellprofiler_core.setting import HiddenCount, Divider, SettingsGroup, ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.do_something import DoSomething, RemoveSettingButton
  from cellprofiler_core.setting.subscriber import ImageListSubscriber, LabelListSubscriber
  from cellprofiler_core.setting.text import Integer
  from cellprofiler_core.utilities.core.object import size_similarly
label_desc: Use image node_id 19 for calling the MeasureTexture obj's underlying member method code with example usage: obj.record_measurement(workspace, image, obj, scale, feature, result, gray_levels) and returns: statistics