Skip to content
Merged

0.3.1 #112

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "taskiq-faststream"
version = "0.3.0"
version = "0.3.1"
description = "FastStream - taskiq integration to schedule FastStream tasks"
readme = "README.md"
authors = [
Expand Down Expand Up @@ -39,7 +39,7 @@ classifiers = [

dependencies = [
"taskiq>=0.11.0,<0.12.0",
"faststream>=0.3.14,<0.6.0",
"faststream>=0.3.14,<0.7",
]

[project.optional-dependencies]
Expand Down Expand Up @@ -96,7 +96,7 @@ Tracker = "https://github.com/taskiq-python/taskiq-faststream/issues"
Source = "https://github.com/taskiq-python/taskiq-faststream"

[tool.mypy]
python_version = "3.9"
python_version = "3.10"
strict = true
ignore_missing_imports = true
allow_subclassing_any = true
Expand All @@ -114,7 +114,7 @@ known_third_party = ["faststream", "taskiq"]

[tool.ruff]
fix = true
target-version = "py39"
target-version = "py310"
line-length = 88

[tool.ruff.lint]
Expand Down
19 changes: 8 additions & 11 deletions taskiq_faststream/broker.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import typing
import warnings
from typing import Any
from typing import Any, TypeAlias

import anyio
from faststream._internal.application import Application
from faststream.types import SendableMessage
from taskiq import AsyncBroker
from taskiq.acks import AckableMessage
from taskiq.decor import AsyncTaskiqDecoratedTask
from typing_extensions import TypeAlias

from taskiq_faststream.formatter import PatchedFormatter, PatchedMessage
from taskiq_faststream.types import ScheduledTask
Expand Down Expand Up @@ -52,7 +51,7 @@ async def kick(self, message: PatchedMessage) -> None: # type: ignore[override]

async def listen(
self,
) -> typing.AsyncGenerator[typing.Union[bytes, AckableMessage], None]:
) -> typing.AsyncGenerator[bytes | AckableMessage, None]:
"""Not supported method."""
while True:
warnings.warn(
Expand All @@ -68,14 +67,12 @@ async def listen(

def task( # type: ignore[override]
self,
message: typing.Union[
None,
SendableMessage,
typing.Callable[[], SendableMessage],
typing.Callable[[], typing.Awaitable[SendableMessage]],
typing.Callable[[], typing.Generator[SendableMessage, None, None]],
typing.Callable[[], typing.AsyncGenerator[SendableMessage, None]],
] = None,
message: None
| SendableMessage
| typing.Callable[[], SendableMessage]
| typing.Callable[[], typing.Awaitable[SendableMessage]]
| typing.Callable[[], typing.Generator[SendableMessage, None, None]]
| typing.Callable[[], typing.AsyncGenerator[SendableMessage, None]] = None,
*,
schedule: list[ScheduledTask],
**kwargs: PublishParameters,
Expand Down
5 changes: 2 additions & 3 deletions taskiq_faststream/types.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
from datetime import datetime, timedelta
from typing import Optional, Union

from typing_extensions import TypedDict

Expand All @@ -11,5 +10,5 @@ class ScheduledTask(TypedDict, total=False):
"""

cron: str
cron_offset: Union[str, timedelta, None]
time: Optional[datetime]
cron_offset: str | timedelta | None
time: datetime | None
14 changes: 6 additions & 8 deletions taskiq_faststream/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,12 @@


async def resolve_msg(
msg: typing.Union[
None,
SendableMessage,
typing.Callable[[], SendableMessage],
typing.Callable[[], typing.Awaitable[SendableMessage]],
typing.Callable[[], typing.Iterator[SendableMessage]],
typing.Callable[[], typing.AsyncIterator[SendableMessage]],
],
msg: None
| SendableMessage
| typing.Callable[[], SendableMessage]
| typing.Callable[[], typing.Awaitable[SendableMessage]]
| typing.Callable[[], typing.Iterator[SendableMessage]]
| typing.Callable[[], typing.AsyncIterator[SendableMessage]],
) -> typing.AsyncIterator[SendableMessage]:
"""Resolve message generation callback.

Expand Down
14 changes: 6 additions & 8 deletions tests/test_resolve_message.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,12 @@
)
@pytest.mark.anyio
async def test_resolve_msg(
msg: typing.Union[
None,
SendableMessage,
typing.Callable[[], SendableMessage],
typing.Callable[[], typing.Awaitable[SendableMessage]],
typing.Callable[[], typing.Generator[SendableMessage, None, None]],
typing.Callable[[], typing.AsyncGenerator[SendableMessage, None]],
],
msg: None
| SendableMessage
| typing.Callable[[], SendableMessage]
| typing.Callable[[], typing.Awaitable[SendableMessage]]
| typing.Callable[[], typing.Generator[SendableMessage, None, None]]
| typing.Callable[[], typing.AsyncGenerator[SendableMessage, None]],
) -> None:
async for m in resolve_msg(msg):
assert m == messages.message
14 changes: 6 additions & 8 deletions tests/testcase.py
Original file line number Diff line number Diff line change
Expand Up @@ -89,14 +89,12 @@ async def test_task_multiple_schedules_by_cron(
subject: str,
broker: Any,
event: asyncio.Event,
msg: typing.Union[
None,
SendableMessage,
typing.Callable[[], SendableMessage],
typing.Callable[[], typing.Awaitable[SendableMessage]],
typing.Callable[[], typing.Generator[SendableMessage, None, None]],
typing.Callable[[], typing.AsyncGenerator[SendableMessage, None]],
],
msg: None
| SendableMessage
| typing.Callable[[], SendableMessage]
| typing.Callable[[], typing.Awaitable[SendableMessage]]
| typing.Callable[[], typing.Generator[SendableMessage, None, None]]
| typing.Callable[[], typing.AsyncGenerator[SendableMessage, None]],
) -> None:
"""Test cron runs twice via StreamScheduler."""
received_message = []
Expand Down
Loading