class_docstr: Raw object from Brain Vision EEG file.
  
  Parameters
  ----------
  vhdr_fname : path-like
      Path to the EEG header file.
  eog : list or tuple
      Names of channels or list of indices that should be designated
      EOG channels. Values should correspond to the header file.
      Default is ``('HEOGL', 'HEOGR', 'VEOGb')``.
  misc : list or tuple of str | ``'auto'``
      Names of channels or list of indices that should be designated
      MISC channels. Values should correspond to the electrodes
      in the header file. If ``'auto'``, units in header file are used for
      inferring misc channels. Default is ``'auto'``.
  scale : float
      The scaling factor for EEG data. Unless specified otherwise by
      header file, units are in microvolts. Default scale factor is 1.
  %(preload)s
  %(verbose)s
  
  Attributes
  ----------
  impedances : dict
      A dictionary of all electrodes and their impedances.
  
  See Also
  --------
  mne.io.Raw : Documentation of attributes and methods.
class_docstr_tok: ["Raw","object","from","Brain","Vision","EEG","file",".","Parameters","--","--","--","--","--","vhdr_fname",":","path-like","Path","to","the","EEG","header","file",".","eog",":","list","or","tuple","Names","of","channels","or","list","of","indices","that","should","be","designated","EOG","channels",".","Values","should","correspond","to","the","header","file",".","Default","is","``","(","'HEOGL","'",",","'HEOGR","'",",","'VEOGb","'",")","``",".","misc",":","list","or","tuple","of","str","|","``","'auto","'","``","Names","of","channels","or","list","of","indices","that","should","be","designated","MISC","channels",".","Values","should","correspond","to","the","electrodes","in","the","header","file",".","If","``","'auto","'","``",",","units","in","header","file","are","used","for","inferring","misc","channels",".","Default","is","``","'auto","'","``",".","scale",":","float","The","scaling","factor","for","EEG","data",".","Unless","specified","otherwise","by","header","file",",","units","are","in","microvolts",".","Default","scale","factor","is","1",".","%","(","preload",")","s","%","(","verbose",")","s","Attributes","--","--","--","--","--","impedances",":","dict","A","dictionary","of","all","electrodes","and","their","impedances",".","See","Also","--","--","--","--","mne.io.Raw",":","Documentation","of","attributes","and","methods","."]
code: def __init__(
      self,
      vhdr_fname,
      eog=("HEOGL", "HEOGR", "VEOGb"),
      misc="auto",
      scale=1.0,
      preload=False,
      verbose=None,
  ):  # noqa: D107
      # Channel info and events
      logger.info("Extracting parameters from %s..." % vhdr_fname)
      hdr_fname = op.abspath(vhdr_fname)
      ext = op.splitext(hdr_fname)[-1]
      ahdr_format = True if ext == ".ahdr" else False
      (
          info,
          data_fname,
          fmt,
          order,
          n_samples,
          mrk_fname,
          montage,
          orig_units,
      ) = _get_hdr_info(hdr_fname, eog, misc, scale)
  
      with open(data_fname, "rb") as f:
          if isinstance(fmt, dict):  # ASCII, this will be slow :(
              if order == "F":  # multiplexed, channels in columns
                  n_skip = 0
                  for ii in range(int(fmt["skiplines"])):
                      n_skip += len(f.readline())
                  offsets = np.cumsum(
                      [n_skip] + [len(line) for line in f]
                  )
                  n_samples = len(offsets) - 1
              elif order == "C":  # vectorized, channels, in rows
                  raise NotImplementedError()
          else:
              n_data_ch = int(info["nchan"])
              f.seek(0, os.SEEK_END)
              n_samples = f.tell()
              dtype_bytes = _fmt_byte_dict[fmt]
              offsets = None
              n_samples = n_samples // (dtype_bytes * n_data_ch)
  
      orig_format = "single" if isinstance(fmt, dict) else fmt
      raw_extras = dict(
          offsets=offsets, fmt=fmt, order=order, n_samples=n_samples
      )
      super().__init__(
          info,
          last_samps=[n_samples - 1],
          filenames=[data_fname],
          orig_format=orig_format,
          preload=preload,
          verbose=verbose,
          raw_extras=[raw_extras],
          orig_units=orig_units,
      )
  
      self.set_montage(montage)
  
      settings, _, _, _ = _aux_hdr_info(hdr_fname)
      split_settings = settings.splitlines()
      self.impedances = _parse_impedance(
          split_settings, self.info["meas_date"]
      )
  
      # Get annotations from marker file
      annots = read_annotations(mrk_fname, info["sfreq"])
      self.set_annotations(annots)
  
      # Drop the fake ahdr channel if needed
      if ahdr_format:
          self.drop_channels(_AHDR_CHANNEL_NAME)
  
imports: import configparser
  import os
  import os.path
  import re
  from datetime import datetime, timezone
  from io import StringIO
  import numpy
  from ..._fiff.constants import FIFF
  from ..._fiff.meas_info import _empty_info
  from ..._fiff.utils import _mult_cal_one, _read_segments_file
  from ...annotations import Annotations, read_annotations
  from ...channels import make_dig_montage
  from ...defaults import HEAD_SIZE_DEFAULT
  from ...transforms import _sph_to_cart
  from ...utils import _DefaultEventParser, fill_doc, logger, verbose, warn
  from ..base import BaseRaw
label_desc: Use image node_id 1 to create a new RawBrainVision object from inherited base classes: BaseRaw with example: obj = RawBrainVision(vhdr_fname, eog, misc, scale, preload, verbose)