diff --git a/ChangeLog b/ChangeLog index 5c587d8fc9..2f6fd29ee5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -121,6 +121,10 @@ Release date: TBA Refs #2141 +* Remove deprecated ``is_sys_guard`` and ``is_typing_guard`` methods. + + Refs #2153 + * Remove deprecated ``Ellipsis``, ``ExtSlice``, ``Index`` nodes. Refs #2152 diff --git a/astroid/nodes/node_classes.py b/astroid/nodes/node_classes.py index 9df654c5f4..2c28c7bc35 100644 --- a/astroid/nodes/node_classes.py +++ b/astroid/nodes/node_classes.py @@ -9,7 +9,6 @@ import abc import itertools import typing -import warnings from collections.abc import Generator, Iterable, Iterator, Mapping from functools import cached_property, lru_cache from typing import ( @@ -2483,59 +2482,6 @@ def _get_yield_nodes_skip_lambdas(self): yield from self.test._get_yield_nodes_skip_lambdas() yield from super()._get_yield_nodes_skip_lambdas() - def is_sys_guard(self) -> bool: - """Return True if IF stmt is a sys.version_info guard. - - >>> import astroid - >>> node = astroid.extract_node(''' - import sys - if sys.version_info > (3, 8): - from typing import Literal - else: - from typing_extensions import Literal - ''') - >>> node.is_sys_guard() - True - """ - warnings.warn( - "The 'is_sys_guard' function is deprecated and will be removed in astroid 3.0.0 " - "It has been moved to pylint and can be imported from 'pylint.checkers.utils' " - "starting with pylint 2.12", - DeprecationWarning, - stacklevel=2, - ) - if isinstance(self.test, Compare): - value = self.test.left - if isinstance(value, Subscript): - value = value.value - if isinstance(value, Attribute) and value.as_string() == "sys.version_info": - return True - - return False - - def is_typing_guard(self) -> bool: - """Return True if IF stmt is a typing guard. - - >>> import astroid - >>> node = astroid.extract_node(''' - from typing import TYPE_CHECKING - if TYPE_CHECKING: - from xyz import a - ''') - >>> node.is_typing_guard() - True - """ - warnings.warn( - "The 'is_typing_guard' function is deprecated and will be removed in astroid 3.0.0 " - "It has been moved to pylint and can be imported from 'pylint.checkers.utils' " - "starting with pylint 2.12", - DeprecationWarning, - stacklevel=2, - ) - return isinstance( - self.test, (Name, Attribute) - ) and self.test.as_string().endswith("TYPE_CHECKING") - class IfExp(NodeNG): """Class representing an :class:`ast.IfExp` node. diff --git a/tests/test_nodes.py b/tests/test_nodes.py index 1d8d67a049..aabd26119e 100644 --- a/tests/test_nodes.py +++ b/tests/test_nodes.py @@ -338,66 +338,6 @@ def test_block_range(self) -> None: self.assertEqual(self.astroid.body[1].orelse[0].block_range(7), (7, 8)) self.assertEqual(self.astroid.body[1].orelse[0].block_range(8), (8, 8)) - @staticmethod - @pytest.mark.filterwarnings("ignore:.*is_sys_guard:DeprecationWarning") - def test_if_sys_guard() -> None: - code = builder.extract_node( - """ - import sys - if sys.version_info > (3, 8): #@ - pass - - if sys.version_info[:2] > (3, 8): #@ - pass - - if sys.some_other_function > (3, 8): #@ - pass - """ - ) - assert isinstance(code, list) and len(code) == 3 - - assert isinstance(code[0], nodes.If) - assert code[0].is_sys_guard() is True - assert isinstance(code[1], nodes.If) - assert code[1].is_sys_guard() is True - - assert isinstance(code[2], nodes.If) - assert code[2].is_sys_guard() is False - - @staticmethod - @pytest.mark.filterwarnings("ignore:.*is_typing_guard:DeprecationWarning") - def test_if_typing_guard() -> None: - code = builder.extract_node( - """ - import typing - import typing as t - from typing import TYPE_CHECKING - - if typing.TYPE_CHECKING: #@ - pass - - if t.TYPE_CHECKING: #@ - pass - - if TYPE_CHECKING: #@ - pass - - if typing.SOME_OTHER_CONST: #@ - pass - """ - ) - assert isinstance(code, list) and len(code) == 4 - - assert isinstance(code[0], nodes.If) - assert code[0].is_typing_guard() is True - assert isinstance(code[1], nodes.If) - assert code[1].is_typing_guard() is True - assert isinstance(code[2], nodes.If) - assert code[2].is_typing_guard() is True - - assert isinstance(code[3], nodes.If) - assert code[3].is_typing_guard() is False - class TryExceptNodeTest(_NodeTest): CODE = """