code: def load(cls, descriptor):
      url = descriptor["url"]
      handler = cls._get_handler(url)
      with handler() as client:
          obj = client.get(url, return_missing=True)
          if obj.exists:
              if descriptor["type"] == cls.file_type:
                  # We saved this file directly, so we know how to read it out
                  with gzip.GzipFile(filename=obj.path, mode="rb") as f:
                      if descriptor["is_text"]:
                          return io.TextIOWrapper(
                              f, encoding=descriptor.get("encoding")
                          ).read()
                      return f.read()
              else:
                  # We open this file according to the is_text and encoding information
                  if descriptor["is_text"]:
                      return io.open(
                          obj.path,
                          mode="rt",
                          encoding=descriptor.get("encoding"),
                      ).read()
                  else:
                      return io.open(obj.path, mode="rb").read()
          raise FileNotFoundError(
              "File at '%s' does not exist" % descriptor["url"]
          )
  
imports: from collections import namedtuple
  import gzip
  import io
  import json
  import os
  from hashlib import sha1
  from typing import Any, Dict, Optional
  from metaflow._vendor import click
  from .exception import MetaflowException
  from .parameters import DelayedEvaluationParameter, DeployTimeField, Parameter, ParameterContext
  from .util import get_username
  import functools
  from metaflow.plugins.datatools import Local, S3
  from metaflow.plugins.azure.includefile_support import Azure
  from metaflow.plugins.gcp.includefile_support import GS
label_desc: Use image node_id 4 for calling the UploaderV1 obj's underlying member method code with example usage: obj.load(cls, descriptor) and returns: f, io, io, io