class_docstr: Raw object from GDF file.
  
  Parameters
  ----------
  input_fname : path-like
      Path to the GDF file.
  eog : list or tuple
      Names of channels or list of indices that should be designated EOG
      channels. Values should correspond to the electrodes in the file.
      Default is None.
  misc : list or tuple
      Names of channels or list of indices that should be designated MISC
      channels. Values should correspond to the electrodes in the file.
      Default is None.
  stim_channel : ``'auto'`` | str | list of str | int | list of int
      Defaults to 'auto', which means that channels named 'status' or
      'trigger' (case insensitive) are set to STIM. If str (or list of str),
      all channels matching the name(s) are set to STIM. If int (or list of
      ints), channels corresponding to the indices are set to STIM.
  exclude : list of str
      Channel names to exclude. This can help when reading data with
      different sampling rates to avoid unnecessary resampling.
  
      .. versionadded:: 0.24.1
  include : list of str | str
      Channel names to be included. A str is interpreted as a regular
      expression. 'exclude' must be empty if include is assigned.
  
      .. versionadded:: 1.1
  %(preload)s
  %(verbose)s
  
  See Also
  --------
  mne.io.Raw : Documentation of attributes and methods.
  mne.io.read_raw_gdf : Recommended way to read GDF files.
  
  Notes
  -----
  If channels named 'status' or 'trigger' are present, they are considered as
  STIM channels by default. Use func:`mne.find_events` to parse events
  encoded in such analog stim channels.
code: def __init__(
      self,
      input_fname,
      eog=None,
      misc=None,
      stim_channel="auto",
      exclude=(),
      preload=False,
      include=None,
      verbose=None,
  ):
      logger.info(f"Extracting EDF parameters from {input_fname}...")
      input_fname = os.path.abspath(input_fname)
      info, edf_info, orig_units = _get_info(
          input_fname,
          stim_channel,
          eog,
          misc,
          exclude,
          True,
          preload,
          include,
      )
      logger.info("Creating raw.info structure...")
  
      # Raw attributes
      last_samps = [edf_info["nsamples"] - 1]
      super().__init__(
          info,
          preload,
          filenames=[input_fname],
          raw_extras=[edf_info],
          last_samps=last_samps,
          orig_format="int",
          orig_units=orig_units,
          verbose=verbose,
      )
  
      # Read annotations from file and set it
      onset, duration, desc = _get_annotations_gdf(
          edf_info, self.info["sfreq"]
      )
  
      self.set_annotations(
          Annotations(
              onset=onset,
              duration=duration,
              description=desc,
              orig_time=None,
          )
      )
  
imports: import os
  import re
  from datetime import datetime, timedelta, timezone
  import numpy
  from scipy.interpolate import interp1d
  from ..._fiff.constants import FIFF
  from ..._fiff.meas_info import _empty_info, _unique_channel_names
  from ..._fiff.utils import _blk_read_lims, _mult_cal_one
  from ...annotations import Annotations
  from ...filter import resample
  from ...utils import _validate_type, fill_doc, logger, verbose, warn
  from ..base import BaseRaw, _get_scaling
label_desc: Use image node_id 1 to create a new RawGDF object from inherited base classes: BaseRaw with example: obj = RawGDF(input_fname, eog, misc, stim_channel, exclude, preload, include, verbose)