summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Mueller <30130371+cdce8p@users.noreply.github.com>2023-04-25 19:10:48 +0200
committerGitHub <noreply@github.com>2023-04-25 17:10:48 +0000
commit08ed4136d83ba88d1e605e4afad71a5420396eec (patch)
tree5e0094640d1514537e80def524b9f1bd4694aae5
parent6865b2b04a22ccee4a34016520e667d5e517740d (diff)
downloadastroid-git-08ed4136d83ba88d1e605e4afad71a5420396eec.tar.gz
Remove deprecated `is_sys_guard` + `is_typing_guard` (#2153)
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com> Co-authored-by: Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>
-rw-r--r--ChangeLog4
-rw-r--r--astroid/nodes/node_classes.py54
-rw-r--r--tests/test_nodes.py60
3 files changed, 4 insertions, 114 deletions
diff --git a/ChangeLog b/ChangeLog
index 5c587d8f..2f6fd29e 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 9df654c5..2c28c7bc 100644
--- a/astroid/nodes/node_classes.py
+++ b/astroid/nodes/node_classes.py
@@ -9,7 +9,6 @@ from __future__ import annotations
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 @@ class If(_base_nodes.MultiLineWithElseBlockNode, _base_nodes.Statement):
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 1d8d67a0..aabd2611 100644
--- a/tests/test_nodes.py
+++ b/tests/test_nodes.py
@@ -338,66 +338,6 @@ class IfNodeTest(_NodeTest):
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 = """