code: def default_resolve_fn(source, info, **args):
      # type: (Any, ResolveInfo, **Any) -> Optional[Any]
      
      name = info.field_name
      if isinstance(source, dict):
          property = source.get(name)
      else:
          property = getattr(source, name, None)
      if callable(property):
          return property()
      return property
docs: If a resolve function is not given, then a default resolve behavior is used which takes the property of the source object
      of the same name as the field and returns it as the result, or if it's a function, returns the result of calling that function.