mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-01 14:21:24 +00:00
Add some additional Python 3.12 typing members to deprecated-import
(#9445)
Closes https://github.com/astral-sh/ruff/issues/9443.
This commit is contained in:
parent
381811b4a6
commit
ad1ca72a35
3 changed files with 105 additions and 22 deletions
|
@ -91,3 +91,12 @@ from typing_extensions import dataclass_transform
|
||||||
|
|
||||||
# UP035
|
# UP035
|
||||||
from backports.strenum import StrEnum
|
from backports.strenum import StrEnum
|
||||||
|
|
||||||
|
# UP035
|
||||||
|
from typing_extensions import override
|
||||||
|
|
||||||
|
# UP035
|
||||||
|
from typing_extensions import Buffer
|
||||||
|
|
||||||
|
# UP035
|
||||||
|
from typing_extensions import get_original_bases
|
||||||
|
|
|
@ -332,7 +332,12 @@ const BACKPORTS_STR_ENUM_TO_ENUM_311: &[&str] = &["StrEnum"];
|
||||||
|
|
||||||
// Members of `typing_extensions` that were moved to `typing`.
|
// Members of `typing_extensions` that were moved to `typing`.
|
||||||
const TYPING_EXTENSIONS_TO_TYPING_312: &[&str] = &[
|
const TYPING_EXTENSIONS_TO_TYPING_312: &[&str] = &[
|
||||||
"NamedTuple",
|
// Introduced in Python 3.12, but `typing_extensions` backports some bug fixes.
|
||||||
|
// "NamedTuple",
|
||||||
|
|
||||||
|
// Introduced in Python 3.12, but `typing_extensions` backports support for PEP 705.
|
||||||
|
// "TypedDict",
|
||||||
|
|
||||||
// Introduced in Python 3.8, but `typing_extensions` backports a ton of optimizations that were
|
// Introduced in Python 3.8, but `typing_extensions` backports a ton of optimizations that were
|
||||||
// added in Python 3.12.
|
// added in Python 3.12.
|
||||||
"Protocol",
|
"Protocol",
|
||||||
|
@ -342,13 +347,20 @@ const TYPING_EXTENSIONS_TO_TYPING_312: &[&str] = &[
|
||||||
"SupportsFloat",
|
"SupportsFloat",
|
||||||
"SupportsInt",
|
"SupportsInt",
|
||||||
"SupportsRound",
|
"SupportsRound",
|
||||||
"TypedDict",
|
"TypeAliasType",
|
||||||
"Unpack",
|
"Unpack",
|
||||||
// Introduced in Python 3.11, but `typing_extensions` backports the `frozen_default` argument,
|
// Introduced in Python 3.11, but `typing_extensions` backports the `frozen_default` argument,
|
||||||
// which was introduced in Python 3.12.
|
// which was introduced in Python 3.12.
|
||||||
"dataclass_transform",
|
"dataclass_transform",
|
||||||
|
"override",
|
||||||
];
|
];
|
||||||
|
|
||||||
|
// Members of `typing_extensions` that were moved to `collections.abc`.
|
||||||
|
const TYPING_EXTENSIONS_TO_COLLECTIONS_ABC_312: &[&str] = &["Buffer"];
|
||||||
|
|
||||||
|
// Members of `typing_extensions` that were moved to `types`.
|
||||||
|
const TYPING_EXTENSIONS_TO_TYPES_312: &[&str] = &["get_original_bases"];
|
||||||
|
|
||||||
struct ImportReplacer<'a> {
|
struct ImportReplacer<'a> {
|
||||||
stmt: &'a Stmt,
|
stmt: &'a Stmt,
|
||||||
module: &'a str,
|
module: &'a str,
|
||||||
|
@ -417,6 +429,28 @@ impl<'a> ImportReplacer<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"typing_extensions" => {
|
"typing_extensions" => {
|
||||||
|
// `typing_extensions` to `collections.abc`
|
||||||
|
let mut typing_extensions_to_collections_abc = vec![];
|
||||||
|
if self.version >= PythonVersion::Py312 {
|
||||||
|
typing_extensions_to_collections_abc
|
||||||
|
.extend(TYPING_EXTENSIONS_TO_COLLECTIONS_ABC_312);
|
||||||
|
}
|
||||||
|
if let Some(operation) =
|
||||||
|
self.try_replace(&typing_extensions_to_collections_abc, "collections.abc")
|
||||||
|
{
|
||||||
|
operations.push(operation);
|
||||||
|
}
|
||||||
|
|
||||||
|
// `typing_extensions` to `types`
|
||||||
|
let mut typing_extensions_to_types = vec![];
|
||||||
|
if self.version >= PythonVersion::Py312 {
|
||||||
|
typing_extensions_to_types.extend(TYPING_EXTENSIONS_TO_TYPES_312);
|
||||||
|
}
|
||||||
|
if let Some(operation) = self.try_replace(&typing_extensions_to_types, "types") {
|
||||||
|
operations.push(operation);
|
||||||
|
}
|
||||||
|
|
||||||
|
// `typing_extensions` to `typing`
|
||||||
let mut typing_extensions_to_typing = TYPING_EXTENSIONS_TO_TYPING.to_vec();
|
let mut typing_extensions_to_typing = TYPING_EXTENSIONS_TO_TYPING.to_vec();
|
||||||
if self.version >= PythonVersion::Py37 {
|
if self.version >= PythonVersion::Py37 {
|
||||||
typing_extensions_to_typing.extend(TYPING_EXTENSIONS_TO_TYPING_37);
|
typing_extensions_to_typing.extend(TYPING_EXTENSIONS_TO_TYPING_37);
|
||||||
|
|
|
@ -995,26 +995,6 @@ UP035.py:77:1: UP035 [*] Import from `collections.abc` instead: `Callable`
|
||||||
79 79 |
|
79 79 |
|
||||||
80 80 | # OK
|
80 80 | # OK
|
||||||
|
|
||||||
UP035.py:87:1: UP035 [*] Import from `typing` instead: `NamedTuple`
|
|
||||||
|
|
|
||||||
86 | # OK: `typing_extensions` contains backported improvements.
|
|
||||||
87 | from typing_extensions import NamedTuple
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
|
||||||
88 |
|
|
||||||
89 | # OK: `typing_extensions` supports `frozen_default` (backported from 3.12).
|
|
||||||
|
|
|
||||||
= help: Import from `typing`
|
|
||||||
|
|
||||||
ℹ Safe fix
|
|
||||||
84 84 | from typing_extensions import SupportsIndex
|
|
||||||
85 85 |
|
|
||||||
86 86 | # OK: `typing_extensions` contains backported improvements.
|
|
||||||
87 |-from typing_extensions import NamedTuple
|
|
||||||
87 |+from typing import NamedTuple
|
|
||||||
88 88 |
|
|
||||||
89 89 | # OK: `typing_extensions` supports `frozen_default` (backported from 3.12).
|
|
||||||
90 90 | from typing_extensions import dataclass_transform
|
|
||||||
|
|
||||||
UP035.py:90:1: UP035 [*] Import from `typing` instead: `dataclass_transform`
|
UP035.py:90:1: UP035 [*] Import from `typing` instead: `dataclass_transform`
|
||||||
|
|
|
|
||||||
89 | # OK: `typing_extensions` supports `frozen_default` (backported from 3.12).
|
89 | # OK: `typing_extensions` supports `frozen_default` (backported from 3.12).
|
||||||
|
@ -1040,6 +1020,8 @@ UP035.py:93:1: UP035 [*] Import from `enum` instead: `StrEnum`
|
||||||
92 | # UP035
|
92 | # UP035
|
||||||
93 | from backports.strenum import StrEnum
|
93 | from backports.strenum import StrEnum
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
||||||
|
94 |
|
||||||
|
95 | # UP035
|
||||||
|
|
|
|
||||||
= help: Import from `enum`
|
= help: Import from `enum`
|
||||||
|
|
||||||
|
@ -1049,5 +1031,63 @@ UP035.py:93:1: UP035 [*] Import from `enum` instead: `StrEnum`
|
||||||
92 92 | # UP035
|
92 92 | # UP035
|
||||||
93 |-from backports.strenum import StrEnum
|
93 |-from backports.strenum import StrEnum
|
||||||
93 |+from enum import StrEnum
|
93 |+from enum import StrEnum
|
||||||
|
94 94 |
|
||||||
|
95 95 | # UP035
|
||||||
|
96 96 | from typing_extensions import override
|
||||||
|
|
||||||
|
UP035.py:96:1: UP035 [*] Import from `typing` instead: `override`
|
||||||
|
|
|
||||||
|
95 | # UP035
|
||||||
|
96 | from typing_extensions import override
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
||||||
|
97 |
|
||||||
|
98 | # UP035
|
||||||
|
|
|
||||||
|
= help: Import from `typing`
|
||||||
|
|
||||||
|
ℹ Safe fix
|
||||||
|
93 93 | from backports.strenum import StrEnum
|
||||||
|
94 94 |
|
||||||
|
95 95 | # UP035
|
||||||
|
96 |-from typing_extensions import override
|
||||||
|
96 |+from typing import override
|
||||||
|
97 97 |
|
||||||
|
98 98 | # UP035
|
||||||
|
99 99 | from typing_extensions import Buffer
|
||||||
|
|
||||||
|
UP035.py:99:1: UP035 [*] Import from `collections.abc` instead: `Buffer`
|
||||||
|
|
|
||||||
|
98 | # UP035
|
||||||
|
99 | from typing_extensions import Buffer
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
||||||
|
100 |
|
||||||
|
101 | # UP035
|
||||||
|
|
|
||||||
|
= help: Import from `collections.abc`
|
||||||
|
|
||||||
|
ℹ Safe fix
|
||||||
|
96 96 | from typing_extensions import override
|
||||||
|
97 97 |
|
||||||
|
98 98 | # UP035
|
||||||
|
99 |-from typing_extensions import Buffer
|
||||||
|
99 |+from collections.abc import Buffer
|
||||||
|
100 100 |
|
||||||
|
101 101 | # UP035
|
||||||
|
102 102 | from typing_extensions import get_original_bases
|
||||||
|
|
||||||
|
UP035.py:102:1: UP035 [*] Import from `types` instead: `get_original_bases`
|
||||||
|
|
|
||||||
|
101 | # UP035
|
||||||
|
102 | from typing_extensions import get_original_bases
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP035
|
||||||
|
|
|
||||||
|
= help: Import from `types`
|
||||||
|
|
||||||
|
ℹ Safe fix
|
||||||
|
99 99 | from typing_extensions import Buffer
|
||||||
|
100 100 |
|
||||||
|
101 101 | # UP035
|
||||||
|
102 |-from typing_extensions import get_original_bases
|
||||||
|
102 |+from types import get_original_bases
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue