deprecate some useless, noop methods in symtable
This commit is contained in:
parent
f647dc10e3
commit
e977ad4d7b
|
@ -144,15 +144,6 @@ Examining Symbol Tables
|
|||
|
||||
Return ``True`` if the symbol is global.
|
||||
|
||||
.. method:: is_vararg()
|
||||
|
||||
Return ``True`` if the symbol is a star arg (receives varargs).
|
||||
|
||||
.. method:: is_kewordarg()
|
||||
|
||||
Return ``True`` if the symbol is a two-star arg (receives keyword
|
||||
arguments).
|
||||
|
||||
.. method:: is_local()
|
||||
|
||||
Return ``True`` if the symbol is local to its block.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -54,6 +54,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- The methods ``is_in_tuple()``, ``is_vararg()``, and ``is_keywordarg()`` of
|
||||
symtable.Symbol have been deprecated for removal in 3.0 and the next release.
|
||||
|
||||
- Issue #2234: distutils failed for some versions of the cygwin compiler. The
|
||||
version reported by these tools does not necessarily follow the python
|
||||
version numbering scheme, so the module is less strict when parsing it.
|
||||
|
|
Loading…
Reference in New Issue