Open MaPePeR opened 1 year ago
This not compatible for older python versions as you can see.
Latest commit should fix the incompatibility with old python versions. Sadly had to resort to sys.version_info
. I would have preferred hasattr(asyncio.Future, '__getitem__')
, but mypy didn't understand that.
Specify that
ConfirmationType
Future
containsConfirmationFrameType
.Channel.confirmations
contains theFuture
s used bybasic_publish
, so theFuture
needs to adhere to the return type ofbasic_publish
.Setting the type reveals an error in
Channel._on_return_frame
, which resolves theFuture
toDeliveredMessage
, which is not aConfirmationFrameType
, thus breaking it's contract.Not sure how to proceed here, tbh., because fixing this can probably be considered a BC-break at this point?
The
DeliveredMessage
that is wrongly returned bybasic_publish
can be reproduced by trying to publish to thedefault_exchange
with arouting_key
that doesn't match any queue and havingon_return_raises=False
(which for some reason is the default inaio-pika
? :flushed:).100 might be related to this.