code: def serialize(o: object) -> tuple[U, str, int, bool]:
      from decimal import Decimal
  
      if not isinstance(o, Decimal):
          return "", "", 0, False
      name = qualname(o)
      _, _, exponent = o.as_tuple()
      if (
          isinstance(exponent, int) and exponent >= 0
      ):  # No digits after the decimal point.
          return int(o), name, __version__, True
      # Technically lossy due to floating point errors, but the best we
      # can do without implementing a custom encode function.
      return float(o), name, __version__, True
  
imports: from __future__ import annotations
  from typing import TYPE_CHECKING
  from airflow.utils.module_loading import qualname
label_desc: Use image node_id 1 for calling a global function with example usage: serialize(o) and returns: float,  name,  __version__,  True, str,  str,  int,  False, int,  name,  __version__,  True