old_contents: import abc
  
  import six
  
  
  @six.add_metaclass(abc.ABCMeta)
  class Transport(object):
  
      @abc.abstractmethod
      def connect(self):
          """ should return ``self`` as the "connection" object """
  
      @abc.abstractmethod
      def disconnect(self):
          pass
  
      @abc.abstractmethod
      def send(self, message):
          pass
  
      @abc.abstractmethod
      def receive(self):
          pass
  
  
  @six.add_metaclass(abc.ABCMeta)
  class Async(object):
      pass
  
new_contents: import abc
  
  import six
  
  
  @six.add_metaclass(abc.ABCMeta)
  class Transport(object):
  
      @abc.abstractmethod
      def connect(self):
          """ should return ``self`` as the "connection" object """
  
      @abc.abstractmethod
      def disconnect(self):
          pass
  
      @abc.abstractmethod
      def send(self, message):
          pass
  
      @abc.abstractmethod
      def receive(self):
          pass
  
  
  @six.add_metaclass(abc.ABCMeta)
  class Async(object):
  
      @abc.abstractmethod
      def Timeout(self, timeout):
          pass
  
      @abc.abstractmethod
      def receive_message(self, timeout):
          pass
  
      @abc.abstractmethod
      def spawn(self, *args, **kwargs):
          pass
  
      @abc.abstractmethod
      def sleep(self, time):
          pass
  
subject: update async interface