code: def _build_indexes(self):
          
          if isinstance(self._data, list):
              for d in self._data:
                  if not isinstance(d, dict):
                      err = u'Cannot build index for non Dict type.'
                      self._tcex.log.error(err)
                      raise RuntimeError(err)
  
                  data_obj = DataObj(d)
                  self._master_index.setdefault(id(data_obj), data_obj)
  
                  for key, value in d.items():
                      # bcs - update this
                      # if not isinstance(value, (types.StringType, float, int)):
                      # TODO: This is not Python 3 ready
                      if not isinstance(value, (float, int, str)):
                          # For comparison operators the value needs to be a StringType
                          self._tcex.log.debug(u'Can only build index String Types.')
                          continue
  
                      self._indexes.setdefault(key, {}).setdefault(value, []).append(data_obj)
          else:
              err = u'Only *List* data type is currently supported'
              self._tcex.log.error(err)
              raise RuntimeError(err)
docs: Build indexes from data for fast filtering of data.
  
          Building indexes of data when possible.  This is only supported when dealing with a
          List of Dictionaries with String values.