code: def read_raw_egi(
      input_fname,
      eog=None,
      misc=None,
      include=None,
      exclude=None,
      preload=False,
      channel_naming="E%d",
      verbose=None,
  ) -> "RawEGI":
      """Read EGI simple binary as raw object.
  
      .. note:: This function attempts to create a synthetic trigger channel.
                See the Notes section below.
  
      Parameters
      ----------
      input_fname : path-like
          Path to the raw file. Files with an extension ``.mff`` are
          automatically considered to be EGI's native MFF format files.
      eog : list or tuple
          Names of channels or list of indices that should be designated
          EOG channels. Default is None.
      misc : list or tuple
          Names of channels or list of indices that should be designated
          MISC channels. Default is None.
      include : None | list
         The event channels to be ignored when creating the synthetic
         trigger. Defaults to None.
         Note. Overrides ``exclude`` parameter.
      exclude : None | list
         The event channels to be ignored when creating the synthetic
         trigger. Defaults to None. If None, channels that have more than
         one event and the ``sync`` and ``TREV`` channels will be
         ignored.
      %(preload)s
  
          .. versionadded:: 0.11
      channel_naming : str
          Channel naming convention for the data channels. Defaults to ``'E%%d'``
          (resulting in channel names ``'E1'``, ``'E2'``, ``'E3'``...). The
          effective default prior to 0.14.0 was ``'EEG %%03d'``.
  
           .. versionadded:: 0.14.0
      %(verbose)s
  
      Returns
      -------
      raw : instance of RawEGI
          A Raw object containing EGI data.
          See :class:`mne.io.Raw` for documentation of attributes and methods.
  
      See Also
      --------
      mne.io.Raw : Documentation of attributes and methods of RawEGI.
  
      Notes
      -----
      The trigger channel names are based on the arbitrary user dependent event
      codes used. However this function will attempt to generate a **synthetic
      trigger channel** named ``STI 014`` in accordance with the general
      Neuromag / MNE naming pattern.
  
      The event_id assignment equals ``np.arange(n_events) + 1``. The resulting
      ``event_id`` mapping is stored as attribute to the resulting raw object but
      will be ignored when saving to a fiff. Note. The trigger channel is
      artificially constructed based on timestamps received by the Netstation.
      As a consequence, triggers have only short durations.
  
      This step will fail if events are not mutually exclusive.
      """
      _validate_type(input_fname, "path-like", "input_fname")
      input_fname = str(input_fname)
      if input_fname.rstrip("/\\").endswith(
          ".mff"
      ):  # allows .mff or .mff/
          return _read_raw_egi_mff(
              input_fname,
              eog,
              misc,
              include,
              exclude,
              preload,
              channel_naming,
              verbose,
          )
      return RawEGI(
          input_fname,
          eog,
          misc,
          include,
          exclude,
          preload,
          channel_naming,
          verbose,
      )
  
file_path: mne-python/mne/io/egi/egi.py
imports: import datetime
  import time
  import numpy
  from ..._fiff.constants import FIFF
  from ..._fiff.meas_info import _empty_info
  from ..._fiff.utils import _create_chs, _read_segments_file
  from ...utils import _check_fname, _validate_type, logger, verbose, warn
  from ..base import BaseRaw
  from .egimff import _read_raw_egi_mff
  from .events import _combine_triggers
label_desc: Use image node_id 3 for calling a global function with example usage: read_raw_egi(input_fname, eog, misc, include, exclude, preload, channel_naming, verbose) and returns: RawEGI, _read_raw_egi_mff