code: def __set_name__(self, owner, name):
      if self.attrname is None:
          self.attrname = name
      elif name != self.attrname:
          raise TypeError(
              "Cannot assign the same cached_property to two different names "
              f"({self.attrname!r} and {name!r})."
          )
  
imports: from abc import get_cache_token
  from collections import namedtuple
  from reprlib import recursive_repr
  from _thread import RLock
  from types import GenericAlias
label_desc: Use image node_id 2 for calling the cached_property obj's underlying member method code with example usage: obj.__set_name__(owner, name) without return types