diff --git a/taskiq_faststream/formatter.py b/taskiq_faststream/formatter.py index 5ed1cc2..137709d 100644 --- a/taskiq_faststream/formatter.py +++ b/taskiq_faststream/formatter.py @@ -26,7 +26,7 @@ def dumps( # type: ignore[override] :param message: message to send. :return: Dumped message. """ - labels = message.labels + labels = message.labels.copy() labels.pop("schedule", None) labels.pop("schedule_id", None) diff --git a/taskiq_faststream/kicker.py b/taskiq_faststream/kicker.py index 2226e5d..f2a96eb 100644 --- a/taskiq_faststream/kicker.py +++ b/taskiq_faststream/kicker.py @@ -1,5 +1,13 @@ +from typing import Any + from taskiq.kicker import AsyncKicker, _FuncParams, _ReturnType +from taskiq.message import TaskiqMessage class LabelRespectKicker(AsyncKicker[_FuncParams, _ReturnType]): """Patched kicker doesn't cast labels to str.""" + + def _prepare_message(self, *args: Any, **kwargs: Any) -> TaskiqMessage: + msg = super()._prepare_message(*args, **kwargs) + msg.labels = self.labels + return msg