File tree Expand file tree Collapse file tree 1 file changed +10
-9
lines changed Expand file tree Collapse file tree 1 file changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -2241,21 +2241,22 @@ def _check_isinstance(_types, **kwargs):
2241
2241
>>> cbook._check_isinstance((SomeClass, None), arg=arg)
2242
2242
"""
2243
2243
types = _types
2244
- if isinstance ( types , type ) or types is None :
2245
- types = (types ,)
2246
- none_allowed = None in types
2247
- types = tuple (tp for tp in types if tp is not None )
2244
+ none_type = type ( None )
2245
+ types = (( types ,) if isinstance (types , type ) else
2246
+ ( none_type ,) if types is None else
2247
+ tuple (none_type if tp is None else tp for tp in types ) )
2248
2248
2249
2249
def type_name (tp ):
2250
- return (tp .__qualname__ if tp .__module__ == "builtins"
2250
+ return ("None" if tp is none_type
2251
+ else tp .__qualname__ if tp .__module__ == "builtins"
2251
2252
else f"{ tp .__module__ } .{ tp .__qualname__ } " )
2252
2253
2253
- names = [* map (type_name , types )]
2254
- if none_allowed :
2255
- types = (* types , type (None ))
2256
- names .append ("None" )
2257
2254
for k , v in kwargs .items ():
2258
2255
if not isinstance (v , types ):
2256
+ names = [* map (type_name , types )]
2257
+ if "None" in names : # Move it to the end for better wording.
2258
+ names .remove ("None" )
2259
+ names .append ("None" )
2259
2260
raise TypeError (
2260
2261
"{!r} must be an instance of {}, not a {}" .format (
2261
2262
k ,
You can’t perform that action at this time.
0 commit comments