code: def test_load_v4():
      data = """CellProfiler Pipeline: http://www.cellprofiler.org
  Version:3
  DateRevision:20141017202435
  GitHash:b261e94
  ModuleCount:3
  HasImagePlaneDetails:False
  
  MeasureTexture:[module_num:1|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False]
  Hidden:2
  Hidden:2
  Hidden:2
  Select an image to measure:rawDNA
  Select an image to measure:rawGFP
  Select objects to measure:Cells
  Select objects to measure:Nuclei
  Texture scale to measure:3
  Angles to measure:Horizontal,Vertical
  Texture scale to measure:5
  Angles to measure:Diagonal,Anti-diagonal
  Measure Gabor features?:Yes
  Number of angles to compute for Gabor:6
  Measure images or objects?:Images
  
  MeasureTexture:[module_num:2|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False]
  Hidden:2
  Hidden:2
  Hidden:2
  Select an image to measure:rawDNA
  Select an image to measure:rawGFP
  Select objects to measure:Cells
  Select objects to measure:Nuclei
  Texture scale to measure:3
  Angles to measure:Horizontal,Vertical
  Texture scale to measure:5
  Angles to measure:Diagonal,Anti-diagonal
  Measure Gabor features?:No
  Number of angles to compute for Gabor:6
  Measure images or objects?:Objects
  
  MeasureTexture:[module_num:3|svn_version:\'Unknown\'|variable_revision_number:4|show_window:True|notes:\x5B\x5D|batch_state:array(\x5B\x5D, dtype=uint8)|enabled:True|wants_pause:False]
  Hidden:2
  Hidden:2
  Hidden:2
  Select an image to measure:rawDNA
  Select an image to measure:rawGFP
  Select objects to measure:Cells
  Select objects to measure:Nuclei
  Texture scale to measure:3
  Angles to measure:Horizontal,Vertical
  Texture scale to measure:5
  Angles to measure:Diagonal,Anti-diagonal
  Measure Gabor features?:No
  Number of angles to compute for Gabor:6
  Measure images or objects?:Both
  """
      pipeline = cellprofiler_core.pipeline.Pipeline()
  
      def callback(caller, event):
          assert not isinstance(
              event, cellprofiler_core.pipeline.event.LoadException
          )
  
      pipeline.add_listener(callback)
      pipeline.load(io.StringIO(data))
      assert len(pipeline.modules()) == 3
      for i, (wants_gabor, io_choice) in enumerate(
          (
              (True, cellprofiler.modules.measuretexture.IO_IMAGES),
              (False, cellprofiler.modules.measuretexture.IO_OBJECTS),
              (False, cellprofiler.modules.measuretexture.IO_BOTH),
          )
      ):
          module = pipeline.modules()[i]
          assert isinstance(
              module, cellprofiler.modules.measuretexture.MeasureTexture
          )
          assert len(module.images_list.value) == 2
          assert {"rawDNA", "rawGFP"}.issubset(module.images_list.value)
          assert len(module.objects_list.value) == 2
          assert {"Cells", "Nuclei"}.issubset(module.objects_list.value)
          assert len(module.scale_groups) == 2
          assert module.scale_groups[0].scale == 3
          assert module.scale_groups[1].scale == 5
  
imports: import io
  import numpy
  import cellprofiler_core.image
  import cellprofiler_core.measurement
  import cellprofiler.modules.measuretexture
  import cellprofiler_core.object
  import cellprofiler_core.pipeline
  import cellprofiler_core.workspace
label_desc: Use image node_id 4 for calling a global function with example usage: test_load_v4() without return types