]> granicus.if.org Git - python/commitdiff
Issue #7092: Fix the DeprecationWarnings emitted by the standard library
authorAntoine Pitrou <solipsis@pitrou.net>
Mon, 4 Jan 2010 23:22:44 +0000 (23:22 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Mon, 4 Jan 2010 23:22:44 +0000 (23:22 +0000)
when using the -3 flag.  Patch by Florent Xicluna.

18 files changed:
Lib/binhex.py
Lib/bsddb/__init__.py
Lib/compiler/ast.py
Lib/compiler/pycodegen.py
Lib/dbhash.py
Lib/formatter.py
Lib/imputil.py
Lib/lib2to3/pgen2/tokenize.py
Lib/mailbox.py
Lib/pprint.py
Lib/pstats.py
Lib/sets.py
Lib/sunau.py
Lib/unittest/case.py
Lib/wave.py
Lib/webbrowser.py
Misc/NEWS
Tools/compiler/astgen.py

index 9059880e24e5aac9f345d7adde45074f1a9b6fad..bd4e8b3015b5b354be8071b2668ad7b1fe7112e6 100644 (file)
@@ -170,7 +170,8 @@ class _Rlecoderengine:
         del self.ofp
 
 class BinHex:
-    def __init__(self, (name, finfo, dlen, rlen), ofp):
+    def __init__(self, name_finfo_dlen_rlen, ofp):
+        name, finfo, dlen, rlen = name_finfo_dlen_rlen
         if type(ofp) == type(''):
             ofname = ofp
             ofp = open(ofname, 'w')
index 0af679f730ff19be931a0d94b49bf3e4dac3fc75..07c7c9de564d74c85551572b9552e07f7693b703 100644 (file)
@@ -44,7 +44,7 @@ absolute_import = (sys.version_info[0] >= 3)
 
 if sys.py3kwarning:
     import warnings
-    warnings.warnpy3k("in 3.x, bsddb has been removed; "
+    warnings.warnpy3k("in 3.x, the bsddb module has been removed; "
                       "please use the pybsddb project instead",
                       DeprecationWarning, 2)
 
index 43b165987877b934cc1a6c60c46592d6d70ad86c..f92307759ef9358a9a92a4d595a322ef50044fb2 100644 (file)
@@ -51,9 +51,9 @@ class Expression(Node):
         return "Expression(%s)" % (repr(self.node))
 
 class Add(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -431,9 +431,9 @@ class Discard(Node):
         return "Discard(%s)" % (repr(self.expr),)
 
 class Div(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -485,9 +485,9 @@ class Exec(Node):
         return "Exec(%s, %s, %s)" % (repr(self.expr), repr(self.locals), repr(self.globals))
 
 class FloorDiv(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -560,7 +560,6 @@ class Function(Node):
             self.kwargs = 1
 
 
-
     def getChildren(self):
         children = []
         children.append(self.decorators)
@@ -590,6 +589,7 @@ class GenExpr(Node):
         self.argnames = ['.0']
         self.varargs = self.kwargs = None
 
+
     def getChildren(self):
         return self.code,
 
@@ -607,7 +607,6 @@ class GenExprFor(Node):
         self.lineno = lineno
         self.is_outmost = False
 
-
     def getChildren(self):
         children = []
         children.append(self.assign)
@@ -784,7 +783,6 @@ class Lambda(Node):
             self.kwargs = 1
 
 
-
     def getChildren(self):
         children = []
         children.append(self.argnames)
@@ -803,9 +801,9 @@ class Lambda(Node):
         return "Lambda(%s, %s, %s, %s)" % (repr(self.argnames), repr(self.defaults), repr(self.flags), repr(self.code))
 
 class LeftShift(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -893,9 +891,9 @@ class ListCompIf(Node):
         return "ListCompIf(%s)" % (repr(self.test),)
 
 class Mod(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -923,9 +921,9 @@ class Module(Node):
         return "Module(%s, %s)" % (repr(self.doc), repr(self.node))
 
 class Mul(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -995,9 +993,9 @@ class Pass(Node):
         return "Pass()"
 
 class Power(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -1095,9 +1093,9 @@ class Return(Node):
         return "Return(%s)" % (repr(self.value),)
 
 class RightShift(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
@@ -1170,9 +1168,9 @@ class Stmt(Node):
         return "Stmt(%s)" % (repr(self.nodes),)
 
 class Sub(Node):
-    def __init__(self, (left, right), lineno=None):
-        self.left = left
-        self.right = right
+    def __init__(self, leftright, lineno=None):
+        self.left = leftright[0]
+        self.right = leftright[1]
         self.lineno = lineno
 
     def getChildren(self):
index 81234d1ff00a7b02b894e87e499d3683bf742b08..960c4fce29bd19c4f3ae55beee4ceb2655887c13 100644 (file)
@@ -870,10 +870,10 @@ class CodeGenerator:
         level = node.level
         if level == 0 and not self.graph.checkFlag(CO_FUTURE_ABSIMPORT):
             level = -1
-        fromlist = map(lambda (name, alias): name, node.names)
+        fromlist = tuple(name for (name, alias) in node.names)
         if VERSION > 1:
             self.emit('LOAD_CONST', level)
-            self.emit('LOAD_CONST', tuple(fromlist))
+            self.emit('LOAD_CONST', fromlist)
         self.emit('IMPORT_NAME', node.modname)
         for name, alias in node.names:
             if VERSION > 1:
index 5ca0bc1913af7741b245cd54bf4744198d40c7ef..77a878e964b8d522af9f75a643e4de99b63fca7d 100644 (file)
@@ -3,7 +3,7 @@
 import sys
 if sys.py3kwarning:
     import warnings
-    warnings.warnpy3k("in 3.x, dbhash has been removed", DeprecationWarning, 2)
+    warnings.warnpy3k("in 3.x, the dbhash module has been removed", DeprecationWarning, 2)
 try:
     import bsddb
 except ImportError:
index 834b5601d30ac822bee19375b8ff9140f88b4fb6..e0a8fe10b22323618ca030d984ba0230c18e8593 100644 (file)
@@ -228,7 +228,8 @@ class AbstractFormatter:
             self.align = None
             self.writer.new_alignment(None)
 
-    def push_font(self, (size, i, b, tt)):
+    def push_font(self, font):
+        size, i, b, tt = font
         if self.softspace:
             self.hard_break = self.para_end = self.softspace = 0
             self.nospace = 1
index a907287e51314a5fbcc5b74275c17bc12bd0e9ef..600cfa51aa1796e217d6fbb624c27006c70cd7ae 100644 (file)
@@ -281,7 +281,8 @@ class Importer:
             setattr(parent, modname, module)
         return module
 
-    def _process_result(self, (ispkg, code, values), fqname):
+    def _process_result(self, result, fqname):
+        ispkg, code, values = result
         # did get_code() return an actual module? (rather than a code object)
         is_module = isinstance(code, _ModuleType)
 
index 163c561100b6eb5aaf4869c7ad3d8fb10a981b22..e0f45f93eca58e70887c519b0292705fe7fe0096 100644 (file)
@@ -144,7 +144,9 @@ class TokenError(Exception): pass
 
 class StopTokenizing(Exception): pass
 
-def printtoken(type, token, (srow, scol), (erow, ecol), line): # for testing
+def printtoken(type, token, start, end, line): # for testing
+    (srow, scol) = start
+    (erow, ecol) = end
     print "%d,%d-%d,%d:\t%s\t%s" % \
         (srow, scol, erow, ecol, tok_name[type], repr(token))
 
index 74359b7aa6325fd6bcf7f492352efe64a5b11fb1..4da556935ecea647748cde7a597cfd24e2f1b61e 100755 (executable)
@@ -18,7 +18,6 @@ import copy
 import email
 import email.message
 import email.generator
-import rfc822
 import StringIO
 try:
     if sys.platform == 'os2emx':
@@ -28,6 +27,13 @@ try:
 except ImportError:
     fcntl = None
 
+import warnings
+with warnings.catch_warnings():
+    if sys.py3kwarning:
+        warnings.filterwarnings("ignore", ".*rfc822 has been removed",
+                                DeprecationWarning)
+    import rfc822
+
 __all__ = [ 'Mailbox', 'Maildir', 'mbox', 'MH', 'Babyl', 'MMDF',
             'Message', 'MaildirMessage', 'mboxMessage', 'MHMessage',
             'BabylMessage', 'MMDFMessage', 'UnixMailbox',
index c48465b8d5855304de91697ef9065e4843bcdfa3..910283e60913e3c209d0d9d4ed799796155bad31 100644 (file)
@@ -35,6 +35,7 @@ saferepr()
 """
 
 import sys as _sys
+import warnings
 
 from cStringIO import StringIO as _StringIO
 
@@ -70,6 +71,13 @@ def isrecursive(object):
     """Determine if object requires a recursive representation."""
     return _safe_repr(object, {}, None, 0)[2]
 
+def _sorted(iterable):
+    with warnings.catch_warnings():
+        if _sys.py3kwarning:
+            warnings.filterwarnings("ignore", "comparing unequal types "
+                                    "not supported", DeprecationWarning)
+        return sorted(iterable)
+
 class PrettyPrinter:
     def __init__(self, indent=1, width=80, depth=None, stream=None):
         """Handle pretty printing operations onto a stream using a set of
@@ -144,8 +152,7 @@ class PrettyPrinter:
             if length:
                 context[objid] = 1
                 indent = indent + self._indent_per_level
-                items  = object.items()
-                items.sort()
+                items = _sorted(object.items())
                 key, ent = items[0]
                 rep = self._repr(key, context, level)
                 write(rep)
@@ -181,7 +188,7 @@ class PrettyPrinter:
                     return
                 write('set([')
                 endchar = '])'
-                object = sorted(object)
+                object = _sorted(object)
                 indent += 4
             elif issubclass(typ, frozenset):
                 if not length:
@@ -189,7 +196,7 @@ class PrettyPrinter:
                     return
                 write('frozenset([')
                 endchar = '])'
-                object = sorted(object)
+                object = _sorted(object)
                 indent += 10
             else:
                 write('(')
@@ -274,7 +281,7 @@ def _safe_repr(object, context, maxlevels, level):
         append = components.append
         level += 1
         saferepr = _safe_repr
-        for k, v in sorted(object.items()):
+        for k, v in _sorted(object.items()):
             krepr, kreadable, krecur = saferepr(k, context, maxlevels, level)
             vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level)
             append("%s: %s" % (krepr, vrepr))
index a6844fbe9444637320fba3b55a9b4a3cf9f39388..6beb0b3bcfa270056187c11e9c35d7748ec24b68 100644 (file)
@@ -442,12 +442,12 @@ class Stats:
         if nc == 0:
             print >> self.stream, ' '*8,
         else:
-            print >> self.stream, f8(tt/nc),
+            print >> self.stream, f8(float(tt)/nc),
         print >> self.stream, f8(ct),
         if cc == 0:
             print >> self.stream, ' '*8,
         else:
-            print >> self.stream, f8(ct/cc),
+            print >> self.stream, f8(float(ct)/cc),
         print >> self.stream, func_std_string(func)
 
 class TupleComp:
index b1743da84473a87d45459141910cfb1e3aa350ff..fe31a0b7e979ca8aa67a4ca7c41b04318b5e69df 100644 (file)
@@ -54,29 +54,7 @@ what's tested is actually `z in y'.
 # - Raymond Hettinger added a number of speedups and other
 #   improvements.
 
-from __future__ import generators
-try:
-    from itertools import ifilter, ifilterfalse
-except ImportError:
-    # Code to make the module run under Py2.2
-    def ifilter(predicate, iterable):
-        if predicate is None:
-            def predicate(x):
-                return x
-        for x in iterable:
-            if predicate(x):
-                yield x
-    def ifilterfalse(predicate, iterable):
-        if predicate is None:
-            def predicate(x):
-                return x
-        for x in iterable:
-            if not predicate(x):
-                yield x
-    try:
-        True, False
-    except NameError:
-        True, False = (0==0, 0!=0)
+from itertools import ifilter, ifilterfalse
 
 __all__ = ['BaseSet', 'Set', 'ImmutableSet']
 
@@ -235,7 +213,7 @@ class BaseSet(object):
             little, big = self, other
         else:
             little, big = other, self
-        common = ifilter(big._data.has_key, little)
+        common = ifilter(big._data.__contains__, little)
         return self.__class__(common)
 
     def __xor__(self, other):
@@ -260,9 +238,9 @@ class BaseSet(object):
             otherdata = other._data
         except AttributeError:
             otherdata = Set(other)._data
-        for elt in ifilterfalse(otherdata.has_key, selfdata):
+        for elt in ifilterfalse(otherdata.__contains__, selfdata):
             data[elt] = value
-        for elt in ifilterfalse(selfdata.has_key, otherdata):
+        for elt in ifilterfalse(selfdata.__contains__, otherdata):
             data[elt] = value
         return result
 
@@ -287,7 +265,7 @@ class BaseSet(object):
         except AttributeError:
             otherdata = Set(other)._data
         value = True
-        for elt in ifilterfalse(otherdata.has_key, self):
+        for elt in ifilterfalse(otherdata.__contains__, self):
             data[elt] = value
         return result
 
@@ -313,7 +291,7 @@ class BaseSet(object):
         self._binary_sanity_check(other)
         if len(self) > len(other):  # Fast check for obvious cases
             return False
-        for elt in ifilterfalse(other._data.has_key, self):
+        for elt in ifilterfalse(other._data.__contains__, self):
             return False
         return True
 
@@ -322,7 +300,7 @@ class BaseSet(object):
         self._binary_sanity_check(other)
         if len(self) < len(other):  # Fast check for obvious cases
             return False
-        for elt in ifilterfalse(self._data.has_key, other):
+        for elt in ifilterfalse(self._data.__contains__, other):
             return False
         return True
 
@@ -338,6 +316,9 @@ class BaseSet(object):
         self._binary_sanity_check(other)
         return len(self) > len(other) and self.issuperset(other)
 
+    # We inherit object.__hash__, so we must deny this explicitly
+    __hash__ = None
+
     # Assorted helpers
 
     def _binary_sanity_check(self, other):
@@ -439,9 +420,6 @@ class Set(BaseSet):
     def __setstate__(self, data):
         self._data, = data
 
-    # We inherit object.__hash__, so we must deny this explicitly
-    __hash__ = None
-
     # In-place union, intersection, differences.
     # Subtle:  The xyz_update() functions deliberately return None,
     # as do all mutating operations on built-in container types.
@@ -503,7 +481,7 @@ class Set(BaseSet):
             other = Set(other)
         if self is other:
             self.clear()
-        for elt in ifilter(data.has_key, other):
+        for elt in ifilter(data.__contains__, other):
             del data[elt]
 
     # Python dict-like mass mutations: update, clear
index 0a402955bd68040eba632692878e1313ccae5c55..a04d8c01314bbca01df5f5aaa0a0ed1f540736b6 100644 (file)
@@ -364,7 +364,8 @@ class Au_write:
         else:
             return 'not compressed'
 
-    def setparams(self, (nchannels, sampwidth, framerate, nframes, comptype, compname)):
+    def setparams(self, params):
+        nchannels, sampwidth, framerate, nframes, comptype, compname = params
         self.setnchannels(nchannels)
         self.setsampwidth(sampwidth)
         self.setframerate(framerate)
index 8da5743440e7d202842042345d1954fbbd8f6079..2ebf2da9f301e4f087ed49360c2b762fa9b575cb 100644 (file)
@@ -746,9 +746,15 @@ class TestCase(object):
             # not hashable.
             expected = list(expected_seq)
             actual = list(actual_seq)
-            expected.sort()
-            actual.sort()
-            missing, unexpected = util.sorted_list_difference(expected, actual)
+            with warnings.catch_warnings():
+                if sys.py3kwarning:
+                    # Silence Py3k warning
+                    warnings.filterwarnings("ignore",
+                                            "dict inequality comparisons "
+                                            "not supported", DeprecationWarning)
+                expected.sort()
+                actual.sort()
+                missing, unexpected = util.sorted_list_difference(expected, actual)
         errors = []
         if missing:
             errors.append('Expected, but missing:\n    %r' % missing)
index b993b400c2ca5d6e0221d754b1d2d3c110458672..718e1eb1c7142ac26f38e03abd6d283bc2387a08 100644 (file)
@@ -384,7 +384,8 @@ class Wave_write:
     def getcompname(self):
         return self._compname
 
-    def setparams(self, (nchannels, sampwidth, framerate, nframes, comptype, compname)):
+    def setparams(self, params):
+        nchannels, sampwidth, framerate, nframes, comptype, compname = params
         if self._datawritten:
             raise Error, 'cannot change parameters after starting to write'
         self.setnchannels(nchannels)
index 74f02701228662be1eb343662308b6c8af88c804..01922f41723e9cc13e23aed8ceddc1fa960c380f 100644 (file)
@@ -650,7 +650,7 @@ def main():
     for o, a in opts:
         if o == '-n': new_win = 1
         elif o == '-t': new_win = 2
-    if len(args) <> 1:
+    if len(args) != 1:
         print >>sys.stderr, usage
         sys.exit(1)
 
index 06fb9eeb5c2e346bc985a6868e6df2d85de80c38..274b150b272c9a3fcaea1ec681668ddbab870bb0 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -65,6 +65,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #7092: Fix the DeprecationWarnings emitted by the standard library
+  when using the -3 flag.  Patch by Florent Xicluna.
+
 - Issue #7471: Improve the performance of GzipFile's buffering mechanism,
   and make it implement the `io.BufferedIOBase` ABC to allow for further
   speedups by wrapping it in an `io.BufferedReader`.  Patch by Nir Aides.
index c431d226b9d5f202881029a55358f35aa2a953a8..1724276add7cb01e0c2c02e00690d18544141128 100644 (file)
@@ -105,12 +105,18 @@ class NodeInfo:
 
     def _gen_init(self, buf):
         if self.args:
-            print >> buf, "    def __init__(self, %s, lineno=None):" % self.args
+            argtuple = '(' in self.args
+            args = self.args if not argtuple else ''.join(self.argnames)
+            print >> buf, "    def __init__(self, %s, lineno=None):" % args
         else:
             print >> buf, "    def __init__(self, lineno=None):"
         if self.argnames:
-            for name in self.argnames:
-                print >> buf, "        self.%s = %s" % (name, name)
+            if argtuple:
+                for idx, name in enumerate(self.argnames):
+                    print >> buf, "        self.%s = %s[%s]" % (name, args, idx)
+            else:
+                for name in self.argnames:
+                    print >> buf, "        self.%s = %s" % (name, name)
         print >> buf, "        self.lineno = lineno"
         # Copy the lines in self.init, indented four spaces.  The rstrip()
         # business is to get rid of the four spaces if line happens to be