diff --git a/Lib/UserDict.py b/Lib/UserDict.py index bd64f84d425..bb2218ab6ce 100644 --- a/Lib/UserDict.py +++ b/Lib/UserDict.py @@ -1,6 +1,6 @@ """A more or less complete user-defined wrapper around dictionary objects.""" -class UserDict(object): +class UserDict: def __init__(self, dict=None, **kwargs): self.data = {} if dict is not None: diff --git a/Lib/abc.py b/Lib/abc.py index c37ed8fd61b..515ba08f23c 100644 --- a/Lib/abc.py +++ b/Lib/abc.py @@ -3,6 +3,8 @@ """Abstract Base Classes (ABCs) according to PEP 3119.""" +import types + # Instance of old-style class class _C: pass @@ -101,7 +103,7 @@ class ABCMeta(type): def register(cls, subclass): """Register a virtual subclass of an ABC.""" - if not isinstance(subclass, type): + if not isinstance(subclass, (type, types.ClassType)): raise TypeError("Can only register classes") if issubclass(subclass, cls): return # Already a subclass diff --git a/Misc/NEWS b/Misc/NEWS index 5926603b117..feab9c55e4a 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -971,8 +971,6 @@ Library position to the given argument, which goes against the tradition of ftruncate() and other truncation APIs. Patch by Pascal Chambon. -- UserDict is now a new-style class. - - Issue #7610: Reworked implementation of the internal ``zipfile.ZipExtFile`` class used to represent files stored inside an archive. The new implementation is significantly faster and can be wrapped in a