class_docstr: A measurement done on a class of objects (or Experiment or Image)
  
  A measurement represents a fully-qualified name of a measurement taken
  on an object. Measurements have categories and feature names and
  may or may not have a secondary image (for instance, the image used
  to measure an intensity), secondary object (for instance, the parent
  object when relating two classes of objects or the object name when
  aggregating object measurements over an image) or scale.
class_docstr_tok: ["A","measurement","done","on","a","class","of","objects","(","or","Experiment","or","Image",")","A","measurement","represents","a","fully-qualified","name","of","a","measurement","taken","on","an","object",".","Measurements","have","categories","and","feature","names","and","may","or","may","not","have","a","secondary","image","(","for","instance",",","the","image","used","to","measure","an","intensity",")",",","secondary","object","(","for","instance",",","the","parent","object","when","relating","two","classes","of","objects","or","the","object","name","when","aggregating","object","measurements","over","an","image",")","or","scale","."]
docstr: Construct a value that might represent a partially complete value
docstr_tok: ["Construct","a","value","that","might","represent","a","partially","complete","value"]
code: def construct_value(
      category, feature_name, object_or_image_name, scale
  ):
      """Construct a value that might represent a partially complete value"""
      if category is None:
          value = "None"
      elif feature_name is None:
          value = category
      else:
          parts = [category, feature_name]
          if object_or_image_name is not None:
              parts.append(object_or_image_name)
          if not scale is None:
              parts.append(scale)
          value = "_".join(parts)
      return str(value)
  
file_path: CellProfiler/src/subpackages/core/cellprofiler_core/setting/_measurement.py
imports: from ._setting import Setting
  from ._validation_error import ValidationError
label_desc: Use image node_id 2 for calling the Measurement obj's underlying member method code with example usage: obj.construct_value(category, feature_name, object_or_image_name, scale) and returns: str