code: def run(self, workspace):
      m = workspace.measurements
  
      statistics = []
  
      if self.operand_choice in (O_BOTH, O_BINARY_IMAGE):
          if len(self.images_list.value) == 0:
              raise ValueError("No images were selected for analysis.")
          for binary_image in self.images_list.value:
              statistics += self.measure_images(binary_image, workspace)
      if self.operand_choice in (O_BOTH, O_OBJECTS):
          if len(self.objects_list.value) == 0:
              raise ValueError(
                  "No object sets were selected for analysis."
              )
          for object_set in self.objects_list.value:
              statistics += self.measure_objects(object_set, workspace)
  
      if self.show_window:
          workspace.display_data.statistics = statistics
  
          workspace.display_data.col_labels = [
              "Objects or Image",
              "Area Occupied",
              "Perimeter",
              "Total Area",
          ]
  
imports: import numpy
  import skimage.measure
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
  from cellprofiler_core.module import Module
  from cellprofiler_core.setting import Divider, ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.subscriber import ImageListSubscriber, LabelListSubscriber
label_desc: Use image node_id 5 for calling the MeasureImageAreaOccupied obj's underlying member method code with example usage: obj.run(workspace) without return types