class_docstr: Parser for Elekta data acquisition settings.
  
  This class parses parameters (e.g. events and averaging categories) that
  are defined in the Elekta TRIUX/VectorView data acquisition software (DACQ)
  and stored in ``info['acq_pars']``. It can be used to reaverage raw data
  according to DACQ settings and modify original averaging settings if
  necessary.
  
  Parameters
  ----------
  %(info_not_none)s This is where the DACQ parameters will be taken from.
  
  Attributes
  ----------
  categories : list
      List of averaging categories marked active in DACQ.
  events : list
      List of events that are in use (referenced by some averaging category).
  reject : dict
      Rejection criteria from DACQ that can be used with mne.Epochs.
      Note that mne does not support all DACQ rejection criteria
      (e.g. spike, slope).
  flat : dict
      Flatness rejection criteria from DACQ that can be used with mne.Epochs.
  acq_dict : dict
      All DACQ parameters.
  
  See Also
  --------
  mne.io.Raw.acqparser : Access the parser through a Raw attribute.
  
  Notes
  -----
  Any averaging category (also non-active ones) can be accessed by indexing
  as ``acqparserfif['category_name']``.
docstr: Collect DACQ averaging categories into a dict.
  
  Categories are keyed by the comment field in DACQ. Each category is
  itself represented a dict containing the category parameters.
docstr_tok: ["Collect","DACQ","averaging","categories","into","a","dict",".","Categories","are","keyed","by","the","comment","field","in","DACQ",".","Each","category","is","itself","represented","a","dict","containing","the","category","parameters","."]
code: def _categories_from_acq_pars(self):
      """Collect DACQ averaging categories into a dict.
  
      Categories are keyed by the comment field in DACQ. Each category is
      itself represented a dict containing the category parameters.
      """
      cats = dict()
      for catnum in [
          str(x).zfill(2) for x in range(1, self.nevent + 1)
      ]:
          catdi = dict()
          # read all category variables
          for var in self._cat_vars:
              acq_key = "ERFcat" + var + catnum
              class_key = var.lower()
              val = self.acq_dict[acq_key]
              catdi[class_key] = val
          # some type conversions
          catdi["display"] = catdi["display"] == "1"
          catdi["state"] = catdi["state"] == "1"
          for key in ["start", "end", "reqwithin"]:
              catdi[key] = float(catdi[key])
          for key in ["nave", "event", "reqevent", "reqwhen", "subave"]:
              catdi[key] = int(catdi[key])
          # some convenient extra (non-DACQ) vars
          catdi["index"] = int(catnum)  # index of category in DACQ list
          cats[catdi["comment"]] = catdi
      return cats
  
imports: from collections.abc import Sequence
  from pathlib import Path
  import numpy
  from ._fiff.constants import FIFF
  from ._fiff.open import fiff_open
  from ._fiff.pick import pick_channels
  from ._fiff.tag import read_tag
  from ._fiff.tree import dir_tree_find
  from ._fiff.write import end_block, start_and_end_file, start_block, write_int
  from .utils import _check_fname, _check_integer_or_list, _check_on_missing, _check_option, _get_stim_channel, _on_missing, _pl, _validate_type, check_fname, fill_doc, logger, verbose, warn
label_desc: Use image node_id 7 for calling the AcqParserFIF obj's underlying member method code with example usage: obj._categories_from_acq_pars() and returns: cats