code: def load_with_fn(path, pickle_fn, format=None, verbose=True):
      if path.endswith(".pointer"):
          format = "pointer"
      elif s3_utils.is_s3_url(path):
          format = "s3"
      if format == "pointer":
          content_path = load_pointer.get_pointer_content(path)
          if content_path == path:
              raise RecursionError(
                  "content_path == path! : " + str(path)
              )
          return load_with_fn(content_path, pickle_fn)
      elif format == "s3":
          import boto3
  
          if verbose:
              logger.log(15, "Loading: %s" % path)
          s3_bucket, s3_prefix = s3_utils.s3_path_to_bucket_prefix(
              s3_path=path
          )
          s3 = boto3.resource("s3")
          # Has to be wrapped in IO buffer since s3 stream does not implement seek()
          buff = io.BytesIO(
              s3.Bucket(s3_bucket)
              .Object(s3_prefix)
              .get()["Body"]
              .read()
          )
          return pickle_fn(buff)
  
      if verbose:
          logger.log(15, "Loading: %s" % path)
      with open(path, "rb") as fin:
          object = pickle_fn(fin)
      return object
  
imports: import io
  import logging
  import pickle
  from ..loaders import load_pointer
  from ..utils import compression_utils, s3_utils
label_desc: Use image node_id 2 for calling a global function with example usage: load_with_fn(path, pickle_fn, format, verbose) and returns: object, load_with_fn, pickle_fn