merge 3.4

This commit is contained in:
Benjamin Peterson 2014-04-01 14:21:03 -04:00
commit f63ea3d148

View file

@ -511,9 +511,6 @@ def build_opener(*handlers):
If any of the handlers passed as arguments are subclasses of the If any of the handlers passed as arguments are subclasses of the
default handlers, the default handlers will not be used. default handlers, the default handlers will not be used.
""" """
def isclass(obj):
return isinstance(obj, type) or hasattr(obj, "__bases__")
opener = OpenerDirector() opener = OpenerDirector()
default_classes = [ProxyHandler, UnknownHandler, HTTPHandler, default_classes = [ProxyHandler, UnknownHandler, HTTPHandler,
HTTPDefaultErrorHandler, HTTPRedirectHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler,
@ -524,7 +521,7 @@ def build_opener(*handlers):
skip = set() skip = set()
for klass in default_classes: for klass in default_classes:
for check in handlers: for check in handlers:
if isclass(check): if instance(check, type):
if issubclass(check, klass): if issubclass(check, klass):
skip.add(klass) skip.add(klass)
elif isinstance(check, klass): elif isinstance(check, klass):
@ -536,7 +533,7 @@ def build_opener(*handlers):
opener.add_handler(klass()) opener.add_handler(klass())
for h in handlers: for h in handlers:
if isclass(h): if isinstance(h, type):
h = h() h = h()
opener.add_handler(h) opener.add_handler(h)
return opener return opener