code: def filter_by_meta(data, df, join_meta=False, **kwargs):
      if not set(META_IDX).issubset(data.index.names + list(data.columns)):
          raise ValueError('missing required index dimensions or columns!')
      meta = pd.DataFrame(df.meta[list(set(kwargs) - set(META_IDX))].copy())
      keep = np.array([True] * len(meta))
      apply_filter = False
      for col, values in kwargs.items():
          if col in META_IDX and values is not None:
              _col = meta.index.get_level_values(0 if col is 'model' else 1)
              keep &= pattern_match(_col, values, has_nan=False)
              apply_filter = True
          elif values is not None:
              keep &= pattern_match(meta[col], values)
          apply_filter |= values is not None
      meta = meta[keep]
      data = data.copy()
      idx = list(data.index.names) if not data.index.names == [None] else None
      data = data.reset_index().set_index(META_IDX)
      meta = meta.loc[meta.index.intersection(data.index)]
      meta.index.names = META_IDX
      if apply_filter:
          data = data.loc[meta.index]
      data.index.names = META_IDX
      data = data.join(meta) if join_meta else data
      data = data.reset_index().set_index(idx or 'index')
      if idx is None:
          data.index.name = None
      return data