@asyncio.coroutine<EOL><INDENT>def declare_queue(self, name='<STR_LIT>', *, durable=True, exclusive=False,<EOL>auto_delete=False, passive=False,<EOL>nowait=False, arguments=None):<DEDENT>
q = yield from self.queue_factory.declare(<EOL>name, durable, exclusive, auto_delete, passive, nowait,<EOL>arguments if arguments is not None else {})<EOL>return q<EOL>
Declare a queue on the broker. If the queue does not exist, it will be created.

This method is a :ref:`coroutine <coroutine>`.

:param str name: the name of the queue.
    Supplying a name of '' will create a queue with a unique name of the server's choosing.
:keyword bool durable: If true, the queue will be re-created when the server restarts.
:keyword bool exclusive: If true, the queue can only be accessed by the current connection,
    and will be deleted when the connection is closed.
:keyword bool auto_delete: If true, the queue will be deleted when the last consumer is cancelled.
    If there were never any conusmers, the queue won't be deleted.
:keyword bool passive: If true and queue with such a name does not
    exist it will raise a :class:`exceptions.NotFound` instead of
    creating it. Arguments ``durable``, ``auto_delete`` and
    ``exclusive`` are ignored if ``passive=True``.
:keyword bool nowait: If true, will not wait for a declare-ok to arrive.
:keyword dict arguments: Table of optional parameters for extensions to the AMQP protocol. See :ref:`extensions`.

:return: The new :class:`Queue` object.