code: def future_add_done_callback(  # noqa: F811
      future: "Union[futures.Future[_T], Future[_T]]", callback: Callable[..., None]
  ) -> None:
      
      if future.done():
          callback(future)
      else:
          future.add_done_callback(callback)
docs: Arrange to call ``callback`` when ``future`` is complete.
  
      ``callback`` is invoked with one argument, the ``future``.
  
      If ``future`` is already done, ``callback`` is invoked immediately.
      This may differ from the behavior of ``Future.add_done_callback``,
      which makes no such guarantee.
  
      .. versionadded:: 5.0