mirror of
https://github.com/python/cpython.git
synced 2025-09-28 19:25:27 +00:00
deprecate some useless, noop methods in symtable
This commit is contained in:
parent
f647dc10e3
commit
e977ad4d7b
4 changed files with 30 additions and 16 deletions
|
@ -144,15 +144,6 @@ Examining Symbol Tables
|
||||||
|
|
||||||
Return ``True`` if the symbol is global.
|
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()
|
.. method:: is_local()
|
||||||
|
|
||||||
Return ``True`` if the symbol is local to its block.
|
Return ``True`` if the symbol is local to its block.
|
||||||
|
|
|
@ -2,11 +2,10 @@
|
||||||
|
|
||||||
import _symtable
|
import _symtable
|
||||||
from _symtable import (USE, DEF_GLOBAL, DEF_LOCAL, DEF_PARAM,
|
from _symtable import (USE, DEF_GLOBAL, DEF_LOCAL, DEF_PARAM,
|
||||||
DEF_STAR, DEF_DOUBLESTAR, DEF_INTUPLE, DEF_FREE,
|
DEF_IMPORT, DEF_BOUND, OPT_IMPORT_STAR, OPT_EXEC, OPT_BARE_EXEC,
|
||||||
DEF_FREE_GLOBAL, DEF_FREE_CLASS, DEF_IMPORT, DEF_BOUND,
|
SCOPE_OFF, SCOPE_MASK, FREE, GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)
|
||||||
OPT_IMPORT_STAR, OPT_EXEC, OPT_BARE_EXEC, SCOPE_OFF, SCOPE_MASK,
|
|
||||||
FREE, GLOBAL_IMPLICIT, GLOBAL_EXPLICIT)
|
|
||||||
|
|
||||||
|
import warnings
|
||||||
import weakref
|
import weakref
|
||||||
|
|
||||||
__all__ = ["symtable", "SymbolTable", "newSymbolTable", "Class",
|
__all__ = ["symtable", "SymbolTable", "newSymbolTable", "Class",
|
||||||
|
@ -194,10 +193,14 @@ class Symbol(object):
|
||||||
return bool(self.__scope in (GLOBAL_IMPLICIT, GLOBAL_EXPLICIT))
|
return bool(self.__scope in (GLOBAL_IMPLICIT, GLOBAL_EXPLICIT))
|
||||||
|
|
||||||
def is_vararg(self):
|
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):
|
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):
|
def is_local(self):
|
||||||
return bool(self.__flags & DEF_BOUND)
|
return bool(self.__flags & DEF_BOUND)
|
||||||
|
@ -212,7 +215,8 @@ class Symbol(object):
|
||||||
return bool(self.__flags & DEF_LOCAL)
|
return bool(self.__flags & DEF_LOCAL)
|
||||||
|
|
||||||
def is_in_tuple(self):
|
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):
|
def is_namespace(self):
|
||||||
"""Returns true if name binding introduces new namespace.
|
"""Returns true if name binding introduces new namespace.
|
||||||
|
|
|
@ -55,6 +55,22 @@ class SymtableTest(unittest.TestCase):
|
||||||
internal = find_block(spam, "internal")
|
internal = find_block(spam, "internal")
|
||||||
foo = find_block(top, "foo")
|
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):
|
def test_type(self):
|
||||||
self.assertEqual(self.top.get_type(), "module")
|
self.assertEqual(self.top.get_type(), "module")
|
||||||
self.assertEqual(self.Mine.get_type(), "class")
|
self.assertEqual(self.Mine.get_type(), "class")
|
||||||
|
|
|
@ -54,6 +54,9 @@ Core and Builtins
|
||||||
Library
|
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
|
- Issue #2234: distutils failed for some versions of the cygwin compiler. The
|
||||||
version reported by these tools does not necessarily follow the python
|
version reported by these tools does not necessarily follow the python
|
||||||
version numbering scheme, so the module is less strict when parsing it.
|
version numbering scheme, so the module is less strict when parsing it.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue