docs: def _subset_meta(full_meta, subset, incremented=False):
      """
      Return metadata reflecting all conditions in subset
  
      Parameters
      ----------
      full_meta : ConfigParser obj
          Metadata object
      subset : str
          String describing subset of data to use for analysis
      incremented : bool
          If True, the metadata has already been incremented
  
      Returns
      -------
      Configparser object or dict
          Updated version of full_meta accounting for subset string
  
      """
      if not subset:
          return full_meta, False
  
      meta = {}  # Make deepcopy of entire meta (all section dicts in meta dict)
      for key, val in full_meta.iteritems():
          meta[key] = copy.deepcopy(dict(val))
  
      conditions = subset.replace(' ','').split(';')
  
      inc = False
      for condition in conditions:
          condition_list = re.split('[<>=]', condition)
          col = condition_list[0]
          val = condition_list[-1]
  
          try:
              col_step = meta[col]['step']
          except:  # If there's no metadata for this col, do nothing
              continue
  
          operator = re.sub('[^<>=]', '', condition)
  
          if operator == '==':
              meta[col]['min'] = val
              meta[col]['max'] = val
          elif operator == '>=':
              meta[col]['min'] = val
          elif operator == '>':
              if incremented:
                  meta[col]['min'] = val
              else:
                  meta[col]['min'] = str(eval(val) + eval(col_step))
              inc = True
          elif operator == '<=':
              meta[col]['max'] = val
          elif operator == '<':
              if incremented:
                  meta[col]['max'] = val
              else:
                  meta[col]['max'] = str(eval(val) - eval(col_step))
              inc = True
          else:
              raise ValueError, "Subset %s not valid" % condition
  
      return meta, inc