diff -r 4c2f3240ad65 Lib/abc.py --- a/Lib/abc.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/abc.py Fri Jul 18 21:28:15 2014 +0300 @@ -168,7 +168,7 @@ def _dump_registry(cls, file=None): """Debug helper to print the ABC registry.""" - print("Class: %s.%s" % (cls.__module__, cls.__name__), file=file) + print("Class: %s.%s" % (cls.__module__, cls.__qualname__), file=file) print("Inv.counter: %s" % ABCMeta._abc_invalidation_counter, file=file) for name in sorted(cls.__dict__.keys()): if name.startswith("_abc_"): diff -r 4c2f3240ad65 Lib/asyncore.py --- a/Lib/asyncore.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/asyncore.py Fri Jul 18 21:28:15 2014 +0300 @@ -255,7 +255,7 @@ self.socket = None def __repr__(self): - status = [self.__class__.__module__+"."+self.__class__.__name__] + status = [self.__class__.__module__+"."+self.__class__.__qualname__] if self.accepting and self.addr: status.append('listening') elif self.connected: diff -r 4c2f3240ad65 Lib/codecs.py --- a/Lib/codecs.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/codecs.py Fri Jul 18 21:28:15 2014 +0300 @@ -99,8 +99,8 @@ return self def __repr__(self): - return "<%s.%s object for encoding %s at 0x%x>" % \ - (self.__class__.__module__, self.__class__.__name__, + return "<%s.%s object for encoding %s at %#x>" % \ + (self.__class__.__module__, self.__class__.__qualname__, self.name, id(self)) class Codec: diff -r 4c2f3240ad65 Lib/distutils/extension.py --- a/Lib/distutils/extension.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/distutils/extension.py Fri Jul 18 21:28:15 2014 +0300 @@ -134,7 +134,7 @@ def __repr__(self): return '<%s.%s(%r) at %#x>' % ( self.__class__.__module__, - self.__class__.__name__, + self.__class__.__qualname__, self.name, id(self)) diff -r 4c2f3240ad65 Lib/functools.py --- a/Lib/functools.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/functools.py Fri Jul 18 21:28:15 2014 +0300 @@ -277,7 +277,7 @@ for k, v in self.keywords.items()) format_string = "{module}.{cls}({func}, {args}, {keywords})" return format_string.format(module=self.__class__.__module__, - cls=self.__class__.__name__, + cls=self.__class__.__qualname__, func=self.func, args=args, keywords=keywords) diff -r 4c2f3240ad65 Lib/inspect.py --- a/Lib/inspect.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/inspect.py Fri Jul 18 21:28:15 2014 +0300 @@ -1038,8 +1038,8 @@ def formatannotation(annotation, base_module=None): if isinstance(annotation, type): if annotation.__module__ in ('builtins', base_module): - return annotation.__name__ - return annotation.__module__+'.'+annotation.__name__ + return annotation.__qualname__ + return annotation.__module__+'.'+annotation.__qualname__ return repr(annotation) def formatannotationrelativeto(object): diff -r 4c2f3240ad65 Lib/pdb.py --- a/Lib/pdb.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/pdb.py Fri Jul 18 21:28:15 2014 +0300 @@ -1316,7 +1316,7 @@ return # Is it a class? if value.__class__ is type: - self.message('Class %s.%s' % (value.__module__, value.__name__)) + self.message('Class %s.%s' % (value.__module__, value.__qualname__)) return # None of the above... self.message(type(value)) diff -r 4c2f3240ad65 Lib/socket.py --- a/Lib/socket.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/socket.py Fri Jul 18 21:28:15 2014 +0300 @@ -141,7 +141,7 @@ closed = getattr(self, '_closed', False) s = "<%s.%s%s fd=%i, family=%s, type=%s, proto=%i" \ % (self.__class__.__module__, - self.__class__.__name__, + self.__class__.__qualname__, " [closed]" if closed else "", self.fileno(), self.family, diff -r 4c2f3240ad65 Lib/test/test_configparser.py --- a/Lib/test/test_configparser.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/test/test_configparser.py Fri Jul 18 21:28:15 2014 +0300 @@ -579,7 +579,7 @@ return e else: self.fail("expected exception type %s.%s" - % (exc.__module__, exc.__name__)) + % (exc.__module__, exc.__qualname__)) def test_boolean(self): cf = self.fromstring( diff -r 4c2f3240ad65 Lib/test/test_io.py --- a/Lib/test/test_io.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/test/test_io.py Fri Jul 18 21:28:15 2014 +0300 @@ -778,7 +778,7 @@ def test_repr(self): raw = self.MockRawIO() b = self.tp(raw) - clsname = "%s.%s" % (self.tp.__module__, self.tp.__name__) + clsname = "%s.%s" % (self.tp.__module__, self.tp.__qualname__) self.assertEqual(repr(b), "<%s>" % clsname) raw.name = "dummy" self.assertEqual(repr(b), "<%s name='dummy'>" % clsname) diff -r 4c2f3240ad65 Lib/test/test_traceback.py --- a/Lib/test/test_traceback.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/test/test_traceback.py Fri Jul 18 21:28:15 2014 +0300 @@ -92,9 +92,9 @@ self.assertEqual(len(err), 1) str_value = '' % X.__name__ if X.__module__ in ('__main__', 'builtins'): - str_name = X.__name__ + str_name = X.__qualname__ else: - str_name = '.'.join([X.__module__, X.__name__]) + str_name = '.'.join([X.__module__, X.__qualname__]) self.assertEqual(err[0], "%s: %s\n" % (str_name, str_value)) def test_without_exception(self): diff -r 4c2f3240ad65 Lib/test/test_zipimport_support.py --- a/Lib/test/test_zipimport_support.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/test/test_zipimport_support.py Fri Jul 18 21:28:15 2014 +0300 @@ -39,7 +39,7 @@ # Use the object's fully qualified name if it has one # Otherwise, use the module's name try: - name = "%s.%s" % (obj.__module__, obj.__name__) + name = "%s.%s" % (obj.__module__, obj.__qualname__) except AttributeError: name = module.__name__ for example in finder.find(obj, name, module): diff -r 4c2f3240ad65 Lib/traceback.py --- a/Lib/traceback.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/traceback.py Fri Jul 18 21:28:15 2014 +0300 @@ -205,7 +205,7 @@ yield _format_final_exc_line(etype, value) return - stype = etype.__name__ + stype = etype.__qualname__ smod = etype.__module__ if smod not in ("__main__", "builtins"): stype = smod + '.' + stype diff -r 4c2f3240ad65 Lib/unittest/test/test_setups.py --- a/Lib/unittest/test/test_setups.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/unittest/test/test_setups.py Fri Jul 18 21:28:15 2014 +0300 @@ -111,7 +111,7 @@ self.assertEqual(len(result.errors), 1) error, _ = result.errors[0] self.assertEqual(str(error), - 'setUpClass (%s.BrokenTest)' % __name__) + 'setUpClass (%s.%s)' % (__name__, BrokenTest.__qualname__)) def test_error_in_teardown_class(self): class Test(unittest.TestCase): @@ -144,7 +144,7 @@ error, _ = result.errors[0] self.assertEqual(str(error), - 'tearDownClass (%s.Test)' % __name__) + 'tearDownClass (%s.%s)' % (__name__, Test.__qualname__)) def test_class_not_torndown_when_setup_fails(self): class Test(unittest.TestCase): @@ -414,7 +414,8 @@ self.assertEqual(len(result.errors), 0) self.assertEqual(len(result.skipped), 1) skipped = result.skipped[0][0] - self.assertEqual(str(skipped), 'setUpClass (%s.Test)' % __name__) + self.assertEqual(str(skipped), + 'setUpClass (%s.%s)' % (__name__, Test.__qualname__)) def test_skiptest_in_setupmodule(self): class Test(unittest.TestCase): diff -r 4c2f3240ad65 Lib/unittest/util.py --- a/Lib/unittest/util.py Thu Jul 17 00:00:26 2014 +0300 +++ b/Lib/unittest/util.py Fri Jul 18 21:28:15 2014 +0300 @@ -52,7 +52,7 @@ return result[:_MAX_LENGTH] + ' [truncated]...' def strclass(cls): - return "%s.%s" % (cls.__module__, cls.__name__) + return "%s.%s" % (cls.__module__, cls.__qualname__) def sorted_list_difference(expected, actual): """Finds elements in only one or the other of two, sorted input lists.