code: def only(iterable, default=None, too_long=None):
      """If *iterable* has only one item, return it.
      If it has zero items, return *default*.
      If it has more than one item, raise the exception given by *too_long*,
      which is ``ValueError`` by default.
      >>> only([], default='missing')
      'missing'
      >>> only([1])
      1
      >>> only([1, 2])  # doctest: +IGNORE_EXCEPTION_DETAIL
      Traceback (most recent call last):
      ...
      ValueError: Expected exactly one item in iterable, but got 1, 2,
       and perhaps more.'
      >>> only([1, 2], too_long=TypeError)  # doctest: +IGNORE_EXCEPTION_DETAIL
      Traceback (most recent call last):
      ...
      TypeError
      Note that :func:`only` attempts to advance *iterable* twice to ensure there
      is only one item.  See :func:`spy` or :func:`peekable` to check
      iterable contents less destructively.
      """
      it = iter(iterable)
      first_value = next(it, default)
  
      try:
          second_value = next(it)
      except StopIteration:
          pass
      else:
          msg = (
              "Expected exactly one item in iterable, but got {!r}, {!r}, "
              "and perhaps more.".format(first_value, second_value)
          )
          raise too_long or ValueError(msg)
  
      return first_value
  
label_desc: Use image node_id 1 for calling a global function with example usage: only(iterable, default, too_long) and returns: first_value