code: def assert_attributes(raw):
      """Assert that the instance keeps all its extra attributes in _raw_extras."""
      __tracebackhide__ = True
      assert isinstance(raw, BaseRaw)
      base_attrs = set(
          dir(BaseRaw(create_info(1, 1000.0, "eeg"), last_samps=[1]))
      )
      base_attrs = base_attrs.union(
          [
              "_data",  # in the case of preloaded data
              "__slotnames__",  # something about being decorated (?)
          ]
      )
      for attr in raw._extra_attributes:
          assert attr not in base_attrs
          base_attrs.add(attr)
      got_attrs = set(dir(raw))
      extra = got_attrs.difference(base_attrs)
      assert extra == set()
  
imports: import math
  import os
  import re
  from contextlib import redirect_stdout
  from io import StringIO
  from os import path
  from pathlib import Path
  import numpy
  import pytest
  from numpy.testing import assert_allclose, assert_array_almost_equal, assert_array_equal, assert_array_less
  import mne
  from mne import Annotations, concatenate_raws, create_info, pick_types
  from mne._fiff._digitization import DigPoint, _dig_kind_dict
  from mne._fiff.constants import FIFF
  from mne._fiff.meas_info import Info, _get_valid_units, _writing_info_hdf5
  from mne._fiff.pick import _ELECTRODE_CH_TYPES, _FNIRS_CH_TYPES_SPLIT
  from mne._fiff.proj import Projection
  from mne._fiff.utils import _mult_cal_one
  from mne.fixes import _numpy_h5py_dep
  from mne.io import BaseRaw, RawArray, read_raw_fif
  from mne.io.base import _get_scaling
  from mne.transforms import Transform
  from mne.utils import _import_h5io_funcs, _raw_annot, _stamp_to_dt, _TempDir, catch_logging, check_version, object_diff
label_desc: Use image node_id 2 for calling a global function with example usage: assert_attributes(raw) without return types