Anonymous avatar Anonymous committed 442e170

Issue #7092: Fix the DeprecationWarnings emitted by the standard library
when using the -3 flag. Patch by Florent Xicluna.

Comments (0)

Files changed (18)

         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')

Lib/bsddb/__init__.py

 
 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)
 

Lib/compiler/ast.py

         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):
         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):
         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):
             self.kwargs = 1
 
 
-
     def getChildren(self):
         children = []
         children.append(self.decorators)
         self.argnames = ['.0']
         self.varargs = self.kwargs = None
 
+
     def getChildren(self):
         return self.code,
 
         self.lineno = lineno
         self.is_outmost = False
 
-
     def getChildren(self):
         children = []
         children.append(self.assign)
             self.kwargs = 1
 
 
-
     def getChildren(self):
         children = []
         children.append(self.argnames)
         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):
         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):
         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):
         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):
         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):
         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):

Lib/compiler/pycodegen.py

         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:
 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:
             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
             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)
 

Lib/lib2to3/pgen2/tokenize.py

 
 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))
 
 import email
 import email.message
 import email.generator
-import rfc822
 import StringIO
 try:
     if sys.platform == 'os2emx':
 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',
 """
 
 import sys as _sys
+import warnings
 
 from cStringIO import StringIO as _StringIO
 
     """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
             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)
                     return
                 write('set([')
                 endchar = '])'
-                object = sorted(object)
+                object = _sorted(object)
                 indent += 4
             elif issubclass(typ, frozenset):
                 if not length:
                     return
                 write('frozenset([')
                 endchar = '])'
-                object = sorted(object)
+                object = _sorted(object)
                 indent += 10
             else:
                 write('(')
         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))
         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:
 # - 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']
 
             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):
             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
 
         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
 
         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
 
         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
 
         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):
     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.
             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
         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)

Lib/unittest/case.py

             # 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)
     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)

Lib/webbrowser.py

     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)
 
 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.

Tools/compiler/astgen.py

 
     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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.