code: def read_epochs_eeglab(
      input_fname,
      events=None,
      event_id=None,
      eog=(),
      *,
      uint16_codec=None,
      montage_units="auto",
      verbose=None,
  ) -> "EpochsEEGLAB":
      r"""Reader function for EEGLAB epochs files.
  
      Parameters
      ----------
      input_fname : path-like
          Path to the ``.set`` file. If the data is stored in a separate ``.fdt``
          file, it is expected to be in the same folder as the ``.set`` file.
      events : path-like | array, shape (n_events, 3) | None
          Path to events file. If array, it is the events typically returned
          by the read_events function. If some events don't match the events
          of interest as specified by event_id, they will be marked as 'IGNORED'
          in the drop log. If None, it is constructed from the EEGLAB (.set) file
          with each unique event encoded with a different integer.
      event_id : int | list of int | dict | None
          The id of the event to consider. If dict, the keys can later be used
          to access associated events.
          Example::
  
              {"auditory":1, "visual":3}
  
          If int, a dict will be created with
          the id as string. If a list, all events with the IDs specified
          in the list are used. If None, the event_id is constructed from the
          EEGLAB (.set) file with each descriptions copied from ``eventtype``.
      eog : list | tuple | 'auto'
          Names or indices of channels that should be designated EOG channels.
          If 'auto', the channel names containing ``EOG`` or ``EYE`` are used.
          Defaults to empty tuple.
      %(uint16_codec)s
      %(montage_units)s
  
          .. versionchanged:: 1.6
             Support for ``'auto'`` was added and is the new default.
      %(verbose)s
  
      Returns
      -------
      epochs : instance of Epochs
          The epochs.
  
      See Also
      --------
      mne.Epochs : Documentation of attributes and methods.
  
      Notes
      -----
      .. versionadded:: 0.11.0
      """
      epochs = EpochsEEGLAB(
          input_fname=input_fname,
          events=events,
          eog=eog,
          event_id=event_id,
          uint16_codec=uint16_codec,
          montage_units=montage_units,
          verbose=verbose,
      )
      return epochs
  
imports: import os.path
  from os import PathLike
  from pathlib import Path
  import numpy
  from mne.utils.check import _check_option
  from ..._fiff._digitization import _ensure_fiducials_head
  from ..._fiff.constants import FIFF
  from ..._fiff.meas_info import create_info
  from ..._fiff.pick import _PICK_TYPES_KEYS
  from ..._fiff.utils import _find_channels, _read_segments_file
  from ...annotations import Annotations, read_annotations
  from ...channels import make_dig_montage
  from ...defaults import DEFAULTS
  from ...epochs import BaseEpochs
  from ...event import read_events
  from ...utils import Bunch, _check_fname, _check_head_radius, fill_doc, logger, verbose, warn
  from ..base import BaseRaw
  from ._eeglab import _readmat
label_desc: Use image node_id 10 for calling a global function with example usage: read_epochs_eeglab(input_fname, events, event_id, eog) and returns: epochs