diff --git a/pyproject.toml b/pyproject.toml index 08aa33a..177def9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 = [ @@ -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] @@ -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 @@ -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] diff --git a/taskiq_faststream/broker.py b/taskiq_faststream/broker.py index 36b55cc..f5a6009 100644 --- a/taskiq_faststream/broker.py +++ b/taskiq_faststream/broker.py @@ -1,6 +1,6 @@ import typing import warnings -from typing import Any +from typing import Any, TypeAlias import anyio from faststream._internal.application import Application @@ -8,7 +8,6 @@ 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 @@ -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( @@ -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, diff --git a/taskiq_faststream/types.py b/taskiq_faststream/types.py index bd31b32..ba8df45 100644 --- a/taskiq_faststream/types.py +++ b/taskiq_faststream/types.py @@ -1,5 +1,4 @@ from datetime import datetime, timedelta -from typing import Optional, Union from typing_extensions import TypedDict @@ -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 diff --git a/taskiq_faststream/utils.py b/taskiq_faststream/utils.py index e0c5cfd..67c4296 100644 --- a/taskiq_faststream/utils.py +++ b/taskiq_faststream/utils.py @@ -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. diff --git a/tests/test_resolve_message.py b/tests/test_resolve_message.py index 78d24e2..aeaa232 100644 --- a/tests/test_resolve_message.py +++ b/tests/test_resolve_message.py @@ -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 diff --git a/tests/testcase.py b/tests/testcase.py index c00852a..b77e77e 100644 --- a/tests/testcase.py +++ b/tests/testcase.py @@ -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 = []