docstr: Concoct the .CSV filename for some object category
  
  :param object_name: name of the objects whose measurements are to be
                      saved (or IMAGES or EXPERIMENT)
  :param workspace: the current workspace
  :param image_set_number: the current image set number
  :param settings_group: the settings group used to name the file
docstr_tok: ["Concoct","the",".CSV","filename","for","some","object","category",":","param","object_name",":","name","of","the","objects","whose","measurements","are","to","be","saved","(","or","IMAGES","or","EXPERIMENT",")",":","param","workspace",":","the","current","workspace",":","param","image_set_number",":","the","current","image","set","number",":","param","settings_group",":","the","settings","group","used","to","name","the","file"]
code: def make_objects_file_name(
      self,
      object_name,
      workspace,
      image_set_number,
      settings_group=None,
  ):
      """Concoct the .CSV filename for some object category
  
      :param object_name: name of the objects whose measurements are to be
                          saved (or IMAGES or EXPERIMENT)
      :param workspace: the current workspace
      :param image_set_number: the current image set number
      :param settings_group: the settings group used to name the file
      """
      if self.wants_everything:
          filename = "%s.%s" % (object_name, self.extension())
  
          if object_name == EXPERIMENT:
              # No metadata substitution allowed for experiment file
              return self.make_full_filename(filename)
          return self.make_full_filename(
              filename, workspace, image_set_number
          )
      if settings_group.wants_automatic_file_name:
          filename = "%s.%s" % (
              settings_group.name.value,
              self.extension(),
          )
      else:
          filename = settings_group.file_name.value
      filename = self.make_full_filename(
          filename, workspace, image_set_number
      )
      return filename
  
imports: import base64
  import csv
  import logging
  import os
  import numpy
  from cellprofiler_core.constants.image import C_MD5_DIGEST, C_SCALING, C_HEIGHT, C_WIDTH
  from cellprofiler_core.constants.measurement import EXPERIMENT, IMAGE, AGG_MEAN, AGG_MEDIAN, AGG_STD_DEV, C_URL, C_PATH_NAME, C_FILE_NAME, NEIGHBORS, R_FIRST_IMAGE_NUMBER, R_SECOND_IMAGE_NUMBER, R_FIRST_OBJECT_NUMBER, R_SECOND_OBJECT_NUMBER
  from cellprofiler_core.constants.module import IO_FOLDER_CHOICE_HELP_TEXT, IO_WITH_METADATA_HELP_TEXT, USING_METADATA_HELP_REF, USING_METADATA_TAGS_REF
  from cellprofiler_core.constants.pipeline import EXIT_STATUS
  from cellprofiler_core.measurement import Measurements
  from cellprofiler_core.module import Module
  from cellprofiler_core.preferences import ABSOLUTE_FOLDER_NAME
  from cellprofiler_core.preferences import DEFAULT_INPUT_FOLDER_NAME
  from cellprofiler_core.preferences import DEFAULT_INPUT_SUBFOLDER_NAME
  from cellprofiler_core.preferences import DEFAULT_OUTPUT_FOLDER_NAME
  from cellprofiler_core.preferences import DEFAULT_OUTPUT_SUBFOLDER_NAME
  from cellprofiler_core.preferences import get_headless
  from cellprofiler_core.setting import Binary
  from cellprofiler_core.setting import Divider
  from cellprofiler_core.setting import Measurement
  from cellprofiler_core.setting import SettingsGroup
  from cellprofiler_core.setting import ValidationError
  from cellprofiler_core.setting.choice import CustomChoice, Choice
  from cellprofiler_core.setting.do_something import DoSomething, RemoveSettingButton
  from cellprofiler_core.setting.multichoice import MeasurementMultiChoice
  from cellprofiler_core.setting.subscriber import ImageSubscriber, LabelSubscriber
  from cellprofiler_core.setting.text import Directory, Text
  from cellprofiler_core.utilities.core.modules.load_data import is_file_name_feature, is_path_name_feature
  from cellprofiler_core.utilities.measurement import find_metadata_tokens, get_agg_measurement_name
  from cellprofiler.gui.help.content import MEASUREMENT_NAMING_HELP
label_desc: Use image node_id 20 for calling the ExportToSpreadsheet obj's underlying member method code with example usage: obj.make_objects_file_name(object_name, workspace, image_set_number, settings_group) and returns: filename, self, self