gh-103193: Micro-optimise helper functions for inspect.getattr_static
(#103195)
This commit is contained in:
parent
119f67de08
commit
264c00a1c5
@ -1772,9 +1772,9 @@ def trace(context=1):
|
|||||||
# ------------------------------------------------ static version of getattr
|
# ------------------------------------------------ static version of getattr
|
||||||
|
|
||||||
_sentinel = object()
|
_sentinel = object()
|
||||||
|
_static_getmro = type.__dict__['__mro__'].__get__
|
||||||
|
_get_dunder_dict_of_class = type.__dict__["__dict__"].__get__
|
||||||
|
|
||||||
def _static_getmro(klass):
|
|
||||||
return type.__dict__['__mro__'].__get__(klass)
|
|
||||||
|
|
||||||
def _check_instance(obj, attr):
|
def _check_instance(obj, attr):
|
||||||
instance_dict = {}
|
instance_dict = {}
|
||||||
@ -1802,10 +1802,9 @@ def _is_type(obj):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def _shadowed_dict(klass):
|
def _shadowed_dict(klass):
|
||||||
dict_attr = type.__dict__["__dict__"]
|
|
||||||
for entry in _static_getmro(klass):
|
for entry in _static_getmro(klass):
|
||||||
try:
|
try:
|
||||||
class_dict = dict_attr.__get__(entry)["__dict__"]
|
class_dict = _get_dunder_dict_of_class(entry)["__dict__"]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
@ -0,0 +1,2 @@
|
|||||||
|
Improve performance of :func:`inspect.getattr_static`. Patch by Alex
|
||||||
|
Waygood.
|
Loading…
x
Reference in New Issue
Block a user