Skip to content

Commit e3ba1ca

Browse files
Deprecate future argument
1 parent 19e0af3 commit e3ba1ca

File tree

6 files changed

+34
-7
lines changed

6 files changed

+34
-7
lines changed

ChangeLog

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,8 @@ Release date: TBA
150150
missing parents regardless of the value of the ``future`` argument (which gave this behavior
151151
already).
152152

153+
The ``future`` argument to each method is deprecated and will be removed in astroid 4.0.
154+
153155
Refs #1217
154156

155157
* Remove deprecated ``Ellipsis``, ``ExtSlice``, ``Index`` nodes.

astroid/nodes/node_classes.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3814,6 +3814,12 @@ def frame(
38143814
38153815
:returns: The first parent frame node.
38163816
"""
3817+
if future is not None:
3818+
warnings.warn(
3819+
"The future arg will be removed in astroid 4.0.",
3820+
DeprecationWarning,
3821+
stacklevel=2,
3822+
)
38173823
if not self.parent:
38183824
raise ParentMissingError(target=self)
38193825

astroid/nodes/node_ng.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,12 @@ def statement(self, *, future: Literal[None, True] = None) -> nodes.Statement:
293293
294294
:raises StatementMissing: If self has no parent attribute.
295295
"""
296+
if future is not None:
297+
warnings.warn(
298+
"The future arg will be removed in astroid 4.0.",
299+
DeprecationWarning,
300+
stacklevel=2,
301+
)
296302
if self.is_statement:
297303
return cast("nodes.Statement", self)
298304
if not self.parent:
@@ -310,6 +316,12 @@ def frame(
310316
:returns: The first parent frame node.
311317
:raises ParentMissingError: If self has no parent attribute.
312318
"""
319+
if future is not None:
320+
warnings.warn(
321+
"The future arg will be removed in astroid 4.0.",
322+
DeprecationWarning,
323+
stacklevel=2,
324+
)
313325
if self.parent is None:
314326
raise ParentMissingError(target=self)
315327
return self.parent.frame(future=future)

astroid/nodes/scoped_nodes/scoped_nodes.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,12 @@ def statement(self, *, future: Literal[None, True] = None) -> NoReturn:
382382
383383
When called on a :class:`Module` this raises a StatementMissing.
384384
"""
385+
if future is not None:
386+
warnings.warn(
387+
"The future arg will be removed in astroid 4.0.",
388+
DeprecationWarning,
389+
stacklevel=2,
390+
)
385391
raise StatementMissing(target=self)
386392

387393
def previous_sibling(self):

tests/test_builder.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -762,9 +762,10 @@ def test_module_base_props(self) -> None:
762762
self.assertEqual(module.pure_python, 1)
763763
self.assertEqual(module.package, 0)
764764
self.assertFalse(module.is_statement)
765-
with pytest.warns(DeprecationWarning) as records:
766-
self.assertEqual(module.statement(), module)
767-
assert len(records) == 1
765+
with self.assertRaises(StatementMissing):
766+
with pytest.warns(DeprecationWarning) as records:
767+
self.assertEqual(module.statement(future=True), module)
768+
assert len(records) == 1
768769
with self.assertRaises(StatementMissing):
769770
module.statement()
770771

tests/test_nodes.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -541,16 +541,16 @@ def _test(self, value: Any) -> None:
541541
self.assertIs(node.value, value)
542542
self.assertTrue(node._proxied.parent)
543543
self.assertEqual(node._proxied.root().name, value.__class__.__module__)
544-
with self.assertRaises(AttributeError):
544+
with self.assertRaises(StatementMissing):
545545
with pytest.warns(DeprecationWarning) as records:
546-
node.statement()
546+
node.statement(future=True)
547547
assert len(records) == 1
548548
with self.assertRaises(StatementMissing):
549549
node.statement()
550550

551-
with self.assertRaises(AttributeError):
551+
with self.assertRaises(ParentMissingError):
552552
with pytest.warns(DeprecationWarning) as records:
553-
node.frame()
553+
node.frame(future=True)
554554
assert len(records) == 1
555555
with self.assertRaises(ParentMissingError):
556556
node.frame()

0 commit comments

Comments
 (0)