Skip to content

Commit 536f6bc

Browse files
committed
chore: mark typing-extensions as non-required with python>=3.11
1 parent 236c068 commit 536f6bc

13 files changed

Lines changed: 52 additions & 26 deletions

File tree

poetry.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ classifiers = [
1919
"Programming Language :: Python",
2020
"Programming Language :: Python :: 3",
2121
"Programming Language :: Python :: 3 :: Only",
22-
"Programming Language :: Python :: 3.8",
2322
"Programming Language :: Python :: 3.9",
2423
"Programming Language :: Python :: 3.10",
2524
"Programming Language :: Python :: 3.11",
@@ -33,7 +32,7 @@ classifiers = [
3332
keywords = ["taskiq", "tasks", "distributed", "async"]
3433
requires-python = ">=3.9,<4"
3534
dependencies = [
36-
"typing-extensions>=3.10.0.0",
35+
"typing-extensions>=3.10.0.0; python_version < '3.11'",
3736
"pydantic>=1.0,<=3.0",
3837
"pycron>=3.0.0",
3938
"taskiq_dependencies>=1.3.1,<2",

taskiq/abc/broker.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
)
2424
from uuid import uuid4
2525

26-
from typing_extensions import ParamSpec, Self, TypeAlias
27-
2826
from taskiq.abc.middleware import TaskiqMiddleware
2927
from taskiq.abc.serializer import TaskiqSerializer
3028
from taskiq.acks import AckableMessage
@@ -39,6 +37,16 @@
3937
from taskiq.utils import maybe_awaitable, remove_suffix
4038
from taskiq.warnings import TaskiqDeprecationWarning
4139

40+
if sys.version_info >= (3, 11):
41+
from typing import ParamSpec, Self, TypeAlias
42+
elif sys.version_info >= (3, 10):
43+
from typing import ParamSpec, TypeAlias
44+
45+
from typing_extensions import Self
46+
else:
47+
from typing_extensions import ParamSpec, Self, TypeAlias
48+
49+
4250
if TYPE_CHECKING: # pragma: no cover
4351
from taskiq.abc.formatter import TaskiqFormatter
4452
from taskiq.abc.result_backend import AsyncResultBackend

taskiq/brokers/shared_broker.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1+
import sys
12
from typing import Any, AsyncGenerator, Optional, TypeVar
23

3-
from typing_extensions import ParamSpec
4-
54
from taskiq.abc.broker import AsyncBroker
65
from taskiq.decor import AsyncTaskiqDecoratedTask
76
from taskiq.exceptions import SharedBrokerListenError, SharedBrokerSendTaskError
87
from taskiq.kicker import AsyncKicker
98
from taskiq.message import BrokerMessage
109

10+
if sys.version_info >= (3, 10):
11+
from typing import ParamSpec
12+
else:
13+
from typing_extensions import ParamSpec
14+
15+
1116
_ReturnType = TypeVar("_ReturnType")
1217
_Params = ParamSpec("_Params")
1318

taskiq/cli/watcher.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def dispatch(self, event: FileSystemEvent) -> None:
4545
return
4646
except Exception as exc:
4747
logger.info(
48-
f"Cannot check path `{event.src_path}` in gitignore. Cause: {exc}",
48+
f"Cannot check path `{event.src_path!r}` in gitignore. Cause: {exc}",
4949
)
5050
return
5151

taskiq/compat.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def model_validate_json(
6464
model_class: Type[Model],
6565
message: Union[str, bytes, bytearray],
6666
) -> Model:
67-
return model_class.parse_raw(message)
67+
return model_class.parse_raw(message) # type: ignore[arg-type]
6868

6969
def model_dump_json(instance: Model) -> str:
7070
return instance.json()

taskiq/decor.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,15 @@
1515
overload,
1616
)
1717

18-
from typing_extensions import ParamSpec
19-
2018
from taskiq.kicker import AsyncKicker
2119
from taskiq.scheduler.created_schedule import CreatedSchedule
2220
from taskiq.task import AsyncTaskiqTask
2321

22+
if sys.version_info >= (3, 10):
23+
from typing import ParamSpec
24+
else:
25+
from typing_extensions import ParamSpec
26+
2427
if TYPE_CHECKING: # pragma: no cover
2528
from taskiq.abc.broker import AsyncBroker
2629
from taskiq.abc.schedule_source import ScheduleSource
@@ -106,24 +109,21 @@ async def kiq(
106109
self: "AsyncTaskiqDecoratedTask[_FuncParams, CoroutineType[Any, Any, _T]]",
107110
*args: _FuncParams.args,
108111
**kwargs: _FuncParams.kwargs,
109-
) -> AsyncTaskiqTask[_T]:
110-
...
112+
) -> AsyncTaskiqTask[_T]: ...
111113

112114
@overload
113115
async def kiq(
114116
self: "AsyncTaskiqDecoratedTask[_FuncParams, Coroutine[Any, Any, _T]]",
115117
*args: _FuncParams.args,
116118
**kwargs: _FuncParams.kwargs,
117-
) -> AsyncTaskiqTask[_T]:
118-
...
119+
) -> AsyncTaskiqTask[_T]: ...
119120

120121
@overload
121122
async def kiq(
122123
self: "AsyncTaskiqDecoratedTask[_FuncParams, _ReturnType]",
123124
*args: _FuncParams.args,
124125
**kwargs: _FuncParams.kwargs,
125-
) -> AsyncTaskiqTask[_ReturnType]:
126-
...
126+
) -> AsyncTaskiqTask[_ReturnType]: ...
127127

128128
async def kiq(
129129
self,

taskiq/depends/progress_tracker.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import enum
2-
from typing import Generic, Optional, Union
2+
from typing import Generic, Optional, TypeVar, Union
33

44
from taskiq_dependencies import Depends
5-
from typing_extensions import TypeVar
65

76
from taskiq.compat import IS_PYDANTIC2
87
from taskiq.context import Context

taskiq/kicker.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import sys
12
from collections.abc import Coroutine
23
from dataclasses import asdict, is_dataclass
34
from datetime import datetime
@@ -16,7 +17,6 @@
1617
)
1718

1819
from pydantic import BaseModel
19-
from typing_extensions import ParamSpec
2020

2121
from taskiq.abc.middleware import TaskiqMiddleware
2222
from taskiq.compat import model_dump
@@ -28,6 +28,11 @@
2828
from taskiq.task import AsyncTaskiqTask
2929
from taskiq.utils import maybe_awaitable
3030

31+
if sys.version_info >= (3, 10):
32+
from typing import ParamSpec
33+
else:
34+
from typing_extensions import ParamSpec
35+
3136
if TYPE_CHECKING: # pragma: no cover
3237
from taskiq.abc.broker import AsyncBroker
3338
from taskiq.abc.schedule_source import ScheduleSource

taskiq/result/result.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
import json
22
import pickle
3+
import sys
34
from functools import partial
45
from typing import Any, Callable, Dict, Generic, Optional, TypeVar
56

67
from pydantic import Field
7-
from typing_extensions import Self
88

99
from taskiq.compat import IS_PYDANTIC2
1010
from taskiq.serialization import exception_to_python, prepare_exception
1111

12+
if sys.version_info >= (3, 11):
13+
from typing import Self
14+
else:
15+
from typing_extensions import Self
16+
1217
_ReturnType = TypeVar("_ReturnType")
1318

1419

0 commit comments

Comments
 (0)