code: def _read_tag_header(fid, pos):
      """Read only the header of a Tag."""
      fid.seek(pos, 0)
      s = fid.read(16)
      if len(s) != 16:
          where = fid.tell() - len(s)
          extra = f" in file {fid.name}" if hasattr(fid, "name") else ""
          warn(
              f"Invalid tag with only {len(s)}/16 bytes at position {where}{extra}"
          )
          return None
      # struct.unpack faster than np.frombuffer, saves ~10% of time some places
      kind, type_, size, next_ = struct.unpack(">iIii", s)
      return Tag(kind, type_, size, next_, pos)
  
imports: import html
  import re
  import struct
  from dataclasses import dataclass
  from functools import partial
  from typing import Any
  import numpy
  from scipy.sparse import csc_matrix, csr_matrix
  from ..utils import _check_option, warn
  from ..utils.numerics import _julian_to_cal
  from .constants import FIFF, _ch_coil_type_named, _ch_kind_named, _ch_unit_mul_named, _ch_unit_named, _dig_cardinal_named, _dig_kind_named
label_desc: Use image node_id 5 for calling a global function with example usage: _read_tag_header(fid, pos) and returns: Tag, None