@@ -52,6 +52,8 @@ def __init__( # noqa: WPS211
5252 exchange_type : ExchangeType = ExchangeType .TOPIC ,
5353 max_priority : Optional [int ] = None ,
5454 delayed_message_exchange_plugin : bool = False ,
55+ declare_exchange_kwargs : Optional [Dict [Any , Any ]] = None ,
56+ declare_queues_kwargs : Optional [Dict [Any , Any ]] = None ,
5557 ** connection_kwargs : Any ,
5658 ) -> None :
5759 """
@@ -80,6 +82,8 @@ def __init__( # noqa: WPS211
8082 :param max_priority: maximum priority value for messages.
8183 :param delayed_message_exchange_plugin: turn on or disable
8284 delayed-message-exchange rabbitmq plugin.
85+ :param declare_exchange_kwargs: additional from AbstractChannel.declare_exchange
86+ :param declare_queues_kwargs: additional from AbstractChannel.declare_queue
8387 :param connection_kwargs: additional keyword arguments,
8488 for connect_robust method of aio-pika.
8589 """
@@ -92,7 +96,9 @@ def __init__( # noqa: WPS211
9296 self ._exchange_type = exchange_type
9397 self ._qos = qos
9498 self ._declare_exchange = declare_exchange
99+ self ._declare_exchange_kwargs = declare_exchange_kwargs or {}
95100 self ._declare_queues = declare_queues
101+ self ._declare_queues_kwargs = declare_queues_kwargs or {}
96102 self ._queue_name = queue_name
97103 self ._routing_key = routing_key
98104 self ._max_priority = max_priority
@@ -135,6 +141,7 @@ async def startup(self) -> None: # noqa: WPS217
135141 await self .write_channel .declare_exchange (
136142 self ._exchange_name ,
137143 type = self ._exchange_type ,
144+ ** self ._declare_exchange_kwargs ,
138145 )
139146
140147 if self ._delayed_message_exchange_plugin :
@@ -178,6 +185,7 @@ async def declare_queues(
178185 """
179186 await channel .declare_queue (
180187 self ._dead_letter_queue_name ,
188+ ** self ._declare_queues_kwargs ,
181189 )
182190 args : "Dict[str, Any]" = {
183191 "x-dead-letter-exchange" : "" ,
@@ -188,6 +196,7 @@ async def declare_queues(
188196 queue = await channel .declare_queue (
189197 self ._queue_name ,
190198 arguments = args ,
199+ ** self ._declare_queues_kwargs ,
191200 )
192201 if self ._delayed_message_exchange_plugin :
193202 await queue .bind (
@@ -201,6 +210,7 @@ async def declare_queues(
201210 "x-dead-letter-exchange" : "" ,
202211 "x-dead-letter-routing-key" : self ._queue_name ,
203212 },
213+ ** self ._declare_queues_kwargs ,
204214 )
205215
206216 await queue .bind (
0 commit comments