code: def exchange_bind(self, destination, source='', routing_key='',
                        nowait=False, arguments=None):
          
          arguments = {} if arguments is None else arguments
          args = AMQPWriter()
          args.write_short(0)
          args.write_shortstr(destination)
          args.write_shortstr(source)
          args.write_shortstr(routing_key)
          args.write_bit(nowait)
          args.write_table(arguments)
          self._send_method((40, 30), args)
  
          if not nowait:
              return self.wait(allowed_methods=[
                  (40, 31),  # Channel.exchange_bind_ok
              ])
docs: This method binds an exchange to an exchange.
  
          RULE:
  
              A server MUST allow and ignore duplicate bindings - that
              is, two or more bind methods for a specific exchanges,
              with identical arguments - without treating these as an
              error.
  
          RULE:
  
              A server MUST allow cycles of exchange bindings to be
              created including allowing an exchange to be bound to
              itself.
  
          RULE:
  
              A server MUST not deliver the same message more than once
              to a destination exchange, even if the topology of
              exchanges and bindings results in multiple (even infinite)
              routes to that exchange.
  
          PARAMETERS:
              reserved-1: short
  
              destination: shortstr
  
                  Specifies the name of the destination exchange to
                  bind.
  
                  RULE:
  
                      A client MUST NOT be allowed to bind a non-
                      existent destination exchange.
  
                  RULE:
  
                      The server MUST accept a blank exchange name to
                      mean the default exchange.
  
              source: shortstr
  
                  Specifies the name of the source exchange to bind.
  
                  RULE:
  
                      A client MUST NOT be allowed to bind a non-
                      existent source exchange.
  
                  RULE:
  
                      The server MUST accept a blank exchange name to
                      mean the default exchange.
  
              routing-key: shortstr
  
                  Specifies the routing key for the binding. The routing
                  key is used for routing messages depending on the
                  exchange configuration. Not all exchanges use a
                  routing key - refer to the specific exchange
                  documentation.
  
              no-wait: bit
  
              arguments: table
  
                  A set of arguments for the binding. The syntax and
                  semantics of these arguments depends on the exchange
                  class.