class_docstr: A descriptor to make special properties that become normal attributes.
  
  This is meant to be used mostly by the auto_attr decorator in this module.
docstr: This will be called on attribute access on the class or instance.
code: def __get__(
      self,
      obj: InstanceT | None,
      objtype: type[InstanceT] | None = None,
  ) -> T | ty.Callable[[InstanceT], T]:
      """This will be called on attribute access on the class or instance."""
      if obj is None:
          # Being called on the class, return the original function. This
          # way, introspection works on the class.
          return self.getter
  
      # Errors in the following line are errors in setting a OneTimeProperty
      val = self.getter(obj)
  
      obj.__dict__[self.name] = val
      return val
  
file_path: nibabel/nibabel/onetime.py
imports: from __future__ import annotations
  import typing
  from nibabel.deprecated import deprecate_with_version
label_desc: Use image node_id 4 for calling the OneTimeProperty obj's underlying member method code with example usage: obj.__get__(obj, objtype) and returns: val, self