code: def _resolve_to_func(self, what):
          
          if isinstance(what, str):
              what = getattr(Adapter._get_property(self), what)
  
          # makes it an unbounded function if needed
          if type(what) == types.MethodType:
              what = what.__func__
  
          if not type(what) == types.FunctionType:
              raise TypeError("Expected a method name, a method or a function")
          return what
docs: This method resolves whatever is passed: a string, a
          bound or unbound method, a function, to make it a
          function. This makes internal handling of setter and getter
          uniform and easier.