summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/symtable.py18
-rw-r--r--Lib/test/test_symtable.py16
2 files changed, 27 insertions, 7 deletions
diff --git a/Lib/symtable.py b/Lib/symtable.py
index 66c0e03..4a5662d 100644
--- a/Lib/symtable.py
+++ b/Lib/symtable.py
@@ -2,11 +2,10 @@
import _symtable
from _symtable import (USE, DEF_GLOBAL, DEF_LOCAL, DEF_PARAM,
- DEF_STAR, DEF_DOUBLESTAR, DEF_INTUPLE, DEF_FREE,
- DEF_FREE_GLOBAL, DEF_FREE_CLASS, DEF_IMPORT, DEF_BOUND,
- OPT_IMPORT_STAR, OPT_EXEC, OPT_BARE_EXEC, SCOPE_OFF, SCOPE_MASK,
- FREE, GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)
+ DEF_IMPORT, DEF_BOUND, OPT_IMPORT_STAR, OPT_EXEC, OPT_BARE_EXEC,
+ SCOPE_OFF, SCOPE_MASK, FREE, GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)
+import warnings
import weakref
__all__ = ["symtable", "SymbolTable", "newSymbolTable", "Class",
@@ -194,10 +193,14 @@ class Symbol(object):
return bool(self.__scope in (GLOBAL_IMPLICIT, GLOBAL_EXPLICIT))
def is_vararg(self):
- return bool(self.__flags & DEF_STAR)
+ warnings.warn("is_vararg() is obsolete and will be removed",
+ DeprecationWarning, 2)
+ return False
def is_keywordarg(self):
- return bool(self.__flags & DEF_DOUBLESTAR)
+ warnings.warn("is_keywordarg() is obsolete and will be removed",
+ DeprecationWarning, 2)
+ return False
def is_local(self):
return bool(self.__flags & DEF_BOUND)
@@ -212,7 +215,8 @@ class Symbol(object):
return bool(self.__flags & DEF_LOCAL)
def is_in_tuple(self):
- return bool(self.__flags & DEF_INTUPLE)
+ warnings.warn("is_in_tuple() is obsolete and will be removed",
+ DeprecationWarning, 2)
def is_namespace(self):
"""Returns true if name binding introduces new namespace.
diff --git a/Lib/test/test_symtable.py b/Lib/test/test_symtable.py
index fc678a8..05b237a 100644
--- a/Lib/test/test_symtable.py
+++ b/Lib/test/test_symtable.py
@@ -55,6 +55,22 @@ class SymtableTest(unittest.TestCase):
internal = find_block(spam, "internal")
foo = find_block(top, "foo")
+ def test_noops(self):
+ # Check methods that don't work. They should warn and return False.
+ def check(w, msg):
+ self.assertEqual(str(w.message), msg)
+ sym = self.top.lookup("glob")
+ with test_support.catch_warning() as w:
+ warnings.simplefilter("always", DeprecationWarning)
+ self.assertFalse(sym.is_vararg())
+ check(w, "is_vararg() is obsolete and will be removed")
+ w.reset()
+ self.assertFalse(sym.is_keywordarg())
+ check(w, "is_keywordarg() is obsolete and will be removed")
+ w.reset()
+ self.assertFalse(sym.is_in_tuple())
+ check(w, "is_in_tuple() is obsolete and will be removed")
+
def test_type(self):
self.assertEqual(self.top.get_type(), "module")
self.assertEqual(self.Mine.get_type(), "class")