class_docstr: The Table setting displays a table of values
class_docstr_tok: ["The","Table","setting","displays","a","table","of","values"]
docstr: Set an attribute on a row
  
  row_index - index of row in question
  
  attribute - one of the ATTR_ values, for instance ATTR_ERROR
  
  set_attribute - True to set, False to clear
docstr_tok: ["Set","an","attribute","on","a","row","row_index","-","index","of","row","in","question","attribute","-","one","of","the","ATTR_","values",",","for","instance","ATTR_ERROR","set_attribute","-","True","to","set",",","False","to","clear"]
code: def set_row_attribute(self, row_index, attribute, set_attribute=True):
      """Set an attribute on a row
  
      row_index - index of row in question
  
      attribute - one of the ATTR_ values, for instance ATTR_ERROR
  
      set_attribute - True to set, False to clear
      """
      if set_attribute:
          if row_index in self.row_attributes:
              self.row_attributes[row_index].add(attribute)
          else:
              self.row_attributes[row_index] = {attribute}
      else:
          if row_index in self.row_attributes:
              s = self.row_attributes[row_index]
              s.remove(attribute)
              if len(s) == 0:
                  del self.row_attributes[row_index]
  
file_path: CellProfiler/src/subpackages/core/cellprofiler_core/setting/_table.py
imports: import cellprofiler_core.utilities.legacy
  from ._setting import Setting
label_desc: Use image node_id 8 for calling the Table obj's underlying member method code with example usage: obj.set_row_attribute(row_index, attribute, set_attribute) without return types