[Python-checkins] r65893 - in python/trunk: Doc/library/symtable.rst Lib/symtable.py Lib/test/test_symtable.py Misc/NEWS
benjamin.peterson
python-checkins at python.org
Wed Aug 20 03:42:02 CEST 2008
Author: benjamin.peterson
Date: Wed Aug 20 03:42:01 2008
New Revision: 65893
Log:
deprecate some useless, noop methods in symtable
Modified:
python/trunk/Doc/library/symtable.rst
python/trunk/Lib/symtable.py
python/trunk/Lib/test/test_symtable.py
python/trunk/Misc/NEWS
Modified: python/trunk/Doc/library/symtable.rst
==============================================================================
--- python/trunk/Doc/library/symtable.rst (original)
+++ python/trunk/Doc/library/symtable.rst Wed Aug 20 03:42:01 2008
@@ -144,15 +144,6 @@
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.
Modified: python/trunk/Lib/symtable.py
==============================================================================
--- python/trunk/Lib/symtable.py (original)
+++ python/trunk/Lib/symtable.py Wed Aug 20 03:42:01 2008
@@ -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 @@
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 @@
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.
Modified: python/trunk/Lib/test/test_symtable.py
==============================================================================
--- python/trunk/Lib/test/test_symtable.py (original)
+++ python/trunk/Lib/test/test_symtable.py Wed Aug 20 03:42:01 2008
@@ -55,6 +55,22 @@
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")
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Wed Aug 20 03:42:01 2008
@@ -54,6 +54,9 @@
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.
More information about the Python-checkins
mailing list