code: def read_eyelink_calibration(
      fname,
      screen_size=None,
      screen_distance=None,
      screen_resolution=None,
  ):
      """Return info on calibrations collected in an eyelink file.
  
      Parameters
      ----------
      fname : path-like
          Path to the eyelink file (.asc).
      screen_size : array-like of shape ``(2,)``
          The width and height (in meters) of the screen that the eyetracking
          data was collected with. For example ``(.531, .298)`` for a monitor with
          a display area of 531 x 298 mm. Defaults to ``None``.
      screen_distance : float
          The distance (in meters) from the participant's eyes to the screen.
          Defaults to ``None``.
      screen_resolution : array-like of shape ``(2,)``
          The resolution (in pixels) of the screen that the eyetracking data
          was collected with. For example, ``(1920, 1080)`` for a 1920x1080
          resolution display. Defaults to ``None``.
  
      Returns
      -------
      calibrations : list
          A list of :class:`~mne.preprocessing.eyetracking.Calibration` instances, one for
          each eye of every calibration that was performed during the recording session.
      """
      fname = _check_fname(
          fname, overwrite="read", must_exist=True, name="fname"
      )
      logger.info(f"Reading calibration data from {fname}")
      lines = fname.read_text(encoding="ASCII").splitlines()
      return _parse_calibration(
          lines, screen_size, screen_distance, screen_resolution
      )
  
file_path: mne-python/mne/preprocessing/eyetracking/calibration.py
imports: from copy import deepcopy
  import numpy
  from ...io.eyelink._utils import _parse_calibration
  from ...utils import _check_fname, _validate_type, fill_doc, logger
  from ...viz.utils import plt_show
label_desc: Use image node_id 1 for calling a global function with example usage: read_eyelink_calibration(fname, screen_size, screen_distance, screen_resolution) and returns: _parse_calibration