docstr: Handle tasks to be performed after a group has been processed
  
  For CorrectIllumninationCalculate, we make sure the current image
  set includes the aggregate image. "run" may not have run if an
  image was filtered out.
docstr_tok: ["Handle","tasks","to","be","performed","after","a","group","has","been","processed","For","CorrectIllumninationCalculate",",","we","make","sure","the","current","image","set","includes","the","aggregate","image",".","``","run","''","may","not","have","run","if","an","image","was","filtered","out","."]
code: def post_group(self, workspace, grouping):
      """Handle tasks to be performed after a group has been processed
  
      For CorrectIllumninationCalculate, we make sure the current image
      set includes the aggregate image. "run" may not have run if an
      image was filtered out.
      """
      if self.each_or_all != EA_EACH:
          image_set = workspace.image_set
          d = self.get_dictionary(workspace.image_set_list)[
              OUTPUT_IMAGE
          ]
          output_image_provider = (
              CorrectIlluminationImageProvider.deserialize(d, self)
          )
          assert isinstance(
              output_image_provider, CorrectIlluminationImageProvider
          )
          if not self.illumination_image_name.value in image_set.names:
              workspace.image_set.providers.append(
                  output_image_provider
              )
          if (
              self.save_average_image
              and self.average_image_name.value not in image_set.names
          ):
              workspace.image_set.add(
                  self.average_image_name.value,
                  output_image_provider.provide_avg_image(),
              )
          if (
              self.save_dilated_image
              and self.dilated_image_name.value not in image_set.names
          ):
              workspace.image_set.add(
                  self.dilated_image_name.value,
                  output_image_provider.provide_dilated_image(),
              )
  
imports: import centrosome.bg_compensate
  import centrosome.cpmorphology
  import centrosome.cpmorphology
  import centrosome.filter
  import centrosome.smooth
  import numpy
  import scipy.ndimage
  import skimage.filters
  from cellprofiler_core.image import AbstractImage
  from cellprofiler_core.image import Image
  from cellprofiler_core.measurement import Measurements
  from cellprofiler_core.module import Module
  from cellprofiler_core.pipeline import Pipeline
  from cellprofiler_core.setting import Binary
  from cellprofiler_core.setting import ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.subscriber import ImageSubscriber
  from cellprofiler_core.setting.text import Float
  from cellprofiler_core.setting.text import ImageName
  from cellprofiler_core.setting.text import Integer
label_desc: Use image node_id 8 for calling the CorrectIlluminationCalculate obj's underlying member method code with example usage: obj.post_group(workspace, grouping) without return types