code: def channel_ready_future(channel):
      
      fut = channel._loop.create_future()
      def _set_result(state):
          if not fut.done() and state is _grpc.ChannelConnectivity.READY:
              fut.set_result(None)
      fut.add_done_callback(lambda f: channel.unsubscribe(_set_result))
      channel.subscribe(_set_result, try_to_connect=True)
      return fut
docs: Creates a Future that tracks when a Channel is ready.
  
    Cancelling the Future does not affect the channel's state machine.
    It merely decouples the Future from channel state machine.
  
    Args:
      channel: A Channel object.
  
    Returns:
      A Future object that matures when the channel connectivity is
      ChannelConnectivity.READY.