Skip to content

Commit 077c51f

Browse files
[Backport maintenance/4.0.x] [typing] Add sys check guard for typing.Self for python < 3.11 (#2912)
[typing] Add sys check guard for typing.Self for python < 3.11 (#2911) Closes #2910 (cherry picked from commit 66df47f) Co-authored-by: Pierre Sassoulas <[email protected]>
1 parent f3255d1 commit 077c51f

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

astroid/nodes/scoped_nodes/mixin.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,19 @@
66

77
from __future__ import annotations
88

9+
import sys
910
from typing import TYPE_CHECKING, overload
1011

11-
from typing_extensions import Self
12-
1312
from astroid.exceptions import ParentMissingError
1413
from astroid.filter_statements import _filter_stmts
1514
from astroid.nodes import _base_nodes, scoped_nodes
1615
from astroid.nodes.scoped_nodes.utils import builtin_lookup
1716
from astroid.typing import InferenceResult, SuccessfulInferenceResult
1817

18+
if sys.version_info >= (3, 11):
19+
from typing import Self
20+
else:
21+
from typing_extensions import Self
1922
if TYPE_CHECKING:
2023
from astroid import nodes
2124

astroid/nodes/scoped_nodes/scoped_nodes.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@
1313
import io
1414
import itertools
1515
import os
16+
import sys
1617
from collections.abc import Generator, Iterable, Iterator, Sequence
1718
from functools import cached_property, lru_cache
1819
from typing import TYPE_CHECKING, Any, ClassVar, Literal, NoReturn
1920

20-
from typing_extensions import Self
21-
2221
from astroid import bases, protocols, util
2322
from astroid.context import (
2423
CallContext,
@@ -52,6 +51,11 @@
5251
SuccessfulInferenceResult,
5352
)
5453

54+
if sys.version_info >= (3, 11):
55+
from typing import Self
56+
else:
57+
from typing_extensions import Self
58+
5559
if TYPE_CHECKING:
5660
from astroid import nodes, objects
5761
from astroid.nodes import Arguments, Const, NodeNG

astroid/objects.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,11 @@
1313

1414
from __future__ import annotations
1515

16+
import sys
1617
from collections.abc import Generator, Iterator
1718
from functools import cached_property
1819
from typing import Any, Literal, NoReturn
1920

20-
from typing_extensions import Self
21-
2221
from astroid import bases, util
2322
from astroid.context import InferenceContext
2423
from astroid.exceptions import (
@@ -32,6 +31,11 @@
3231
from astroid.nodes import node_classes, scoped_nodes
3332
from astroid.typing import InferenceResult, SuccessfulInferenceResult
3433

34+
if sys.version_info >= (3, 11):
35+
from typing import Self
36+
else:
37+
from typing_extensions import Self
38+
3539

3640
class FrozenSet(node_classes.BaseContainer):
3741
"""Class representing a FrozenSet composite node."""

0 commit comments

Comments
 (0)