Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 8768aec

Browse filesBrowse files
authored
Merge pull request #18997 from anntzer/check_isinstance
Micro-optimize check_isinstance.
2 parents 83bad83 + 5f5a31f commit 8768aec
Copy full SHA for 8768aec

File tree

Expand file treeCollapse file tree

1 file changed

+10
-9
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+10
-9
lines changed

‎lib/matplotlib/cbook/__init__.py

Copy file name to clipboardExpand all lines: lib/matplotlib/cbook/__init__.py
+10-9Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2241,21 +2241,22 @@ def _check_isinstance(_types, **kwargs):
22412241
>>> cbook._check_isinstance((SomeClass, None), arg=arg)
22422242
"""
22432243
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))
22482248

22492249
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"
22512252
else f"{tp.__module__}.{tp.__qualname__}")
22522253

2253-
names = [*map(type_name, types)]
2254-
if none_allowed:
2255-
types = (*types, type(None))
2256-
names.append("None")
22572254
for k, v in kwargs.items():
22582255
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")
22592260
raise TypeError(
22602261
"{!r} must be an instance of {}, not a {}".format(
22612262
k,

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.