code: def _read_spreadsheet(
      sheet_id: int | Sequence[int] | None,
      sheet_name: str | list[str] | tuple[str] | None,
      source: str | BytesIO | Path | BinaryIO | bytes,
      engine: Literal["xlsx2csv", "openpyxl", "pyxlsb", "ods"] | None,
      engine_options: dict[str, Any] | None = None,
      read_csv_options: dict[str, Any] | None = None,
      schema_overrides: SchemaDict | None = None,
      *,
      raise_if_empty: bool = True,
  ) -> pl.DataFrame | dict[str, pl.DataFrame]:
      if isinstance(source, (str, Path)):
          source = normalize_filepath(source)
  
      if engine is None:
          if (src := str(source).lower()).endswith(".ods"):
              engine = "ods"
          else:
              engine = "pyxlsb" if src.endswith(".xlsb") else "xlsx2csv"
  
      # establish the reading function, parser, and available worksheets
      reader_fn, parser, worksheets = _initialise_spreadsheet_parser(
          engine, source, engine_options or {}
      )
      try:
          # parse data from the indicated sheet(s)
          sheet_names, return_multi = _get_sheet_names(
              sheet_id, sheet_name, worksheets
          )
          parsed_sheets = {
              name: reader_fn(
                  parser=parser,
                  sheet_name=name,
                  read_csv_options=read_csv_options,
                  schema_overrides=schema_overrides,
                  raise_if_empty=raise_if_empty,
              )
              for name in sheet_names
          }
      finally:
          if hasattr(parser, "close"):
              parser.close()
  
      if not parsed_sheets:
          param, value = (
              ("id", sheet_id)
              if sheet_name is None
              else ("name", sheet_name)
          )
          raise ValueError(
              f"no matching sheets found when `sheet_{param}` is {value!r}"
          )
  
      if return_multi:
          return parsed_sheets
      return next(iter(parsed_sheets.values()))
  
imports: from __future__ import annotations
  import re
  from io import StringIO
  from pathlib import Path
  from typing import TYPE_CHECKING, Any, BinaryIO, Callable, NoReturn, Sequence, overload
  import polars._reexport
  from polars import functions
  from polars.datatypes import Date, Datetime
  from polars.exceptions import NoDataError, ParameterCollisionError
  from polars.io.csv.functions import read_csv
  from polars.utils.various import normalize_filepath
label_desc: Use image node_id 15 for calling a global function with example usage: _read_spreadsheet(sheet_id, sheet_name, source, engine, engine_options, read_csv_options, schema_overrides) and returns: next, parsed_sheets