Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions Lib/inspect.py
Original file line number Diff line number Diff line change
Expand Up @@ -1772,9 +1772,9 @@ def trace(context=1):
# ------------------------------------------------ static version of getattr

_sentinel = object()
_static_getmro = type.__dict__['__mro__'].__get__
_dunder_dict_descriptor = type.__dict__["__dict__"]

def _static_getmro(klass):
return type.__dict__['__mro__'].__get__(klass)

def _check_instance(obj, attr):
instance_dict = {}
Expand Down Expand Up @@ -1802,10 +1802,9 @@ def _is_type(obj):
return True

def _shadowed_dict(klass):
dict_attr = type.__dict__["__dict__"]
for entry in _static_getmro(klass):
try:
class_dict = dict_attr.__get__(entry)["__dict__"]
class_dict = _dunder_dict_descriptor.__get__(entry)["__dict__"]
except KeyError:
pass
else:
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Improve performance of :func:`inspect.getattr_static`. Patch by Alex
Waygood.