Simplify entity _attr cached_property getter implementation (#113195)
This commit is contained in:
parent
bbef3f7f68
commit
fb163278a4
1 changed files with 4 additions and 11 deletions
|
@ -11,6 +11,7 @@ from enum import Enum, IntFlag, auto
|
|||
import functools as ft
|
||||
import logging
|
||||
import math
|
||||
from operator import attrgetter
|
||||
import sys
|
||||
from timeit import default_timer as timer
|
||||
from types import FunctionType
|
||||
|
@ -340,16 +341,6 @@ class CachedProperties(type):
|
|||
|
||||
return _deleter
|
||||
|
||||
def getter(name: str) -> Callable[[Any], Any]:
|
||||
"""Create a getter for an _attr_ property."""
|
||||
private_attr_name = f"__attr_{name}"
|
||||
|
||||
def _getter(o: Any) -> Any:
|
||||
"""Get an _attr_ property from the backing __attr attribute."""
|
||||
return getattr(o, private_attr_name)
|
||||
|
||||
return _getter
|
||||
|
||||
def setter(name: str) -> Callable[[Any, Any], None]:
|
||||
"""Create a setter for an _attr_ property."""
|
||||
private_attr_name = f"__attr_{name}"
|
||||
|
@ -372,7 +363,9 @@ class CachedProperties(type):
|
|||
|
||||
def make_property(name: str) -> property:
|
||||
"""Help create a property object."""
|
||||
return property(fget=getter(name), fset=setter(name), fdel=deleter(name))
|
||||
return property(
|
||||
fget=attrgetter(f"__attr_{name}"), fset=setter(name), fdel=deleter(name)
|
||||
)
|
||||
|
||||
def wrap_attr(cls: CachedProperties, property_name: str) -> None:
|
||||
"""Wrap a cached property's corresponding _attr in a property.
|
||||
|
|
Loading…
Add table
Reference in a new issue