class_docstr: Class to add epoch selection and metadata to certain classes.
class_docstr_tok: ["Class","to","add","epoch","selection","and","metadata","to","certain","classes","."]
code: def metadata(self, metadata, verbose=None):
      metadata = self._check_metadata(metadata, reset_index=True)
      if metadata is not None:
          if _check_pandas_installed(strict=False):
              n_col = metadata.shape[1]
          else:
              n_col = len(metadata[0])
          n_col = " with %d columns" % n_col
      else:
          n_col = ""
      if hasattr(self, "_metadata") and self._metadata is not None:
          action = "Removing" if metadata is None else "Replacing"
          action += " existing"
      else:
          action = "Not setting" if metadata is None else "Adding"
      logger.info("%s metadata%s" % (action, n_col))
      self._metadata = metadata
  
imports: import json
  import logging
  from collections import OrderedDict
  from copy import deepcopy
  import numpy
  from ._logging import verbose, warn
  from .check import _check_pandas_installed, _check_preload, _validate_type
  from .numerics import _time_mask, object_hash, object_size
label_desc: Use image node_id 11 for calling the GetEpochsMixin obj's underlying member method code with example usage: obj.metadata(metadata, verbose) without return types