docs: def _basic_deliver(self, args, msg):
          """
          notify the client of a consumer message
  
          This method delivers a message to the client, via a consumer.
          In the asynchronous message delivery model, the client starts
          a consumer using the Consume method, then the server responds
          with Deliver methods as and when messages arrive for that
          consumer.
  
          RULE:
  
              The server SHOULD track the number of times a message has
              been delivered to clients and when a message is
              redelivered a certain number of times - e.g. 5 times -
              without being acknowledged, the server SHOULD consider the
              message to be unprocessable (possibly causing client
              applications to abort), and move the message to a dead
              letter queue.
  
          PARAMETERS:
              consumer_tag: shortstr
  
                  consumer tag
  
                  Identifier for the consumer, valid within the current
                  connection.
  
                  RULE:
  
                      The consumer tag is valid only within the channel
                      from which the consumer was created. I.e. a client
                      MUST NOT create a consumer in one channel and then
                      use it in another.
  
              delivery_tag: longlong
  
                  server-assigned delivery tag
  
                  The server-assigned and channel-specific delivery tag
  
                  RULE:
  
                      The delivery tag is valid only within the channel
                      from which the message was received.  I.e. a client
                      MUST NOT receive a message on one channel and then
                      acknowledge it on another.
  
                  RULE:
  
                      The server MUST NOT use a zero value for delivery
                      tags.  Zero is reserved for client use, meaning "all
                      messages so far received".
  
              redelivered: boolean
  
                  message is being redelivered
  
                  This indicates that the message has been previously
                  delivered to this or another client.
  
              exchange: shortstr
  
                  Specifies the name of the exchange that the message
                  was originally published to.
  
              routing_key: shortstr
  
                  Message routing key
  
                  Specifies the routing key name specified when the
                  message was published.
  
          """
          consumer_tag = args.read_shortstr()
          delivery_tag = args.read_longlong()
          redelivered = args.read_bit()
          exchange = args.read_shortstr()
          routing_key = args.read_shortstr()
  
          msg.delivery_info = {
              'channel': self,
              'consumer_tag': consumer_tag,
              'delivery_tag': delivery_tag,
              'redelivered': redelivered,
              'exchange': exchange,
              'routing_key': routing_key,
              }
  
          func = self.callbacks.get(consumer_tag, None)
          if func is not None:
              func(msg)