Skip to content

Commit 3b28499

Browse files
committed
⬇️ fix: use typing-extensions for Python < 3.11
1 parent a10f1a2 commit 3b28499

File tree

6 files changed

+35
-16
lines changed

6 files changed

+35
-16
lines changed

nonebot_plugin_orm/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
from .config import Config, plugin_config
2828
from .utils import LoguruHandler, StreamToLogger, get_subclasses
2929

30-
if sys.version_info >= (3, 10):
30+
if sys.version_info >= (3, 9):
3131
from typing import Annotated
3232
else:
3333
from typing_extensions import Annotated

nonebot_plugin_orm/__main__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from __future__ import annotations
22

3+
import sys
34
from pathlib import Path
45
from typing import TypeVar
56
from functools import wraps
67
from argparse import Namespace
78
from collections.abc import Callable, Iterable
8-
from typing_extensions import ParamSpec, Concatenate
99

1010
import click
1111
from alembic.script import Script
@@ -14,6 +14,11 @@
1414
from .config import plugin_config
1515
from .migrate import AlembicConfig
1616

17+
if sys.version_info >= (3, 10):
18+
from typing import ParamSpec, Concatenate
19+
else:
20+
from typing_extensions import ParamSpec, Concatenate
21+
1722
_P = ParamSpec("_P")
1823
_R = TypeVar("_R")
1924

nonebot_plugin_orm/config.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import os
2-
from typing import Any, Dict, Union
1+
import sys
2+
from pathlib import Path
3+
from typing import Any, Union, Optional
34

45
from sqlalchemy import URL
56
from nonebot import get_driver
@@ -8,6 +9,11 @@
89

910
from .migrate import AlembicConfig
1011

12+
if sys.version_info >= (3, 9):
13+
Dict = dict
14+
else:
15+
from typing import Dict
16+
1117
__all__ = (
1218
"Config",
1319
"plugin_config",
@@ -21,11 +27,9 @@ class Config(BaseModel, arbitrary_types_allowed=True):
2127
sqlalchemy_engine_options: Dict[str, Any] = {}
2228
sqlalchemy_session_options: Dict[str, Any] = {}
2329

24-
alembic_config: Union[str, os.PathLike, AlembicConfig] = ""
25-
alembic_script_location: Union[str, os.PathLike] = ""
26-
alembic_version_locations: Union[
27-
str, os.PathLike, Dict[str, os.PathLike], None
28-
] = None
30+
alembic_config: Union[Path, AlembicConfig, None] = None
31+
alembic_script_location: Optional[Path] = None
32+
alembic_version_locations: Union[Path, Dict[str, Path], None] = None
2933
alembic_context: Dict[str, Any] = {}
3034
alembic_startup_check: bool = True
3135

nonebot_plugin_orm/migrate.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@
77
from pathlib import Path
88
from pprint import pformat
99
from argparse import Namespace
10-
from operator import methodcaller
10+
from typing import Any, TextIO, cast
1111
from tempfile import TemporaryDirectory
1212
from configparser import DuplicateSectionError
13-
from typing import Any, Set, Tuple, TextIO, cast
1413
from contextlib import ExitStack, suppress, contextmanager
1514
from collections.abc import Mapping, Iterable, Sequence, Generator
1615

@@ -35,11 +34,14 @@
3534

3635
from .utils import is_editable, return_progressbar
3736

38-
if sys.version_info >= (3, 12):
37+
if sys.version_info >= (3, 11):
3938
from typing import Self
40-
from importlib.resources import files, as_file
4139
else:
4240
from typing_extensions import Self
41+
42+
if sys.version_info >= (3, 12):
43+
from importlib.resources import files, as_file
44+
else:
4345
from importlib_resources import files, as_file
4446

4547

nonebot_plugin_orm/param.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
import sys
44
from itertools import repeat
5+
from typing import Any, cast
56
from dataclasses import dataclass
67
from inspect import Parameter, isclass
7-
from typing_extensions import Annotated
8-
from typing import Any, Tuple, Iterator, Sequence, AsyncIterator, cast
98

109
from pydantic.fields import FieldInfo
1110
from nonebot.dependencies import Param
@@ -18,6 +17,15 @@
1817
from .model import Model
1918
from .utils import Option, methodcaller, compile_dependency, generic_issubclass
2019

20+
if sys.version_info >= (3, 9):
21+
from typing import Annotated
22+
from collections.abc import Iterator, Sequence, AsyncIterator
23+
24+
Tuple = tuple
25+
else:
26+
from typing_extensions import Annotated
27+
from typing import Tuple, Iterator, Sequence, AsyncIterator
28+
2129
__all__ = (
2230
"SQLDepends",
2331
"ORMParam",

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ dependencies = [
1414
"nonebot-plugin-localstore~=0.5",
1515
"nonebot2~=2.1",
1616
"sqlalchemy~=2.0",
17-
"typing-extensions~=4.8; python_version < '3.12'",
17+
"typing-extensions~=4.8; python_version < '3.11'",
1818
]
1919
requires-python = ">=3.8,<4.0"
2020
readme = "README.md"

0 commit comments

Comments
 (0)