code: def channel(self, rpc_timeout=60, lazy=False):
          
          LOGGER.debug('Opening a new Channel')
          if not compatibility.is_integer(rpc_timeout):
              raise AMQPInvalidArgument('rpc_timeout should be an integer')
          elif self.is_closed:
              raise AMQPConnectionError('socket/connection closed')
  
          with self.lock:
              channel_id = self._get_next_available_channel_id()
              channel = Channel(channel_id, self, rpc_timeout,
                                on_close_impl=self._cleanup_channel)
              self._channels[channel_id] = channel
              if not lazy:
                  channel.open()
          LOGGER.debug('Channel #%d Opened', channel_id)
          return self._channels[channel_id]
docs: Open Channel.
  
          :param int rpc_timeout: Timeout before we give up waiting for an RPC
                                  response from the server.
  
          :raises AMQPInvalidArgument: Invalid Parameters
          :raises AMQPChannelError: Raises if the channel encountered an error.
          :raises AMQPConnectionError: Raises if the connection
                                       encountered an error.