code: def run(self):
      SetuptoolsDeprecationWarning.emit(
          "Deprecated command",
          """
              upload_docs is deprecated and will be removed in a future version.
              Instead, use tools like devpi and Read the Docs; or lower level tools like
              httpie and curl to interact directly with your hosting service API.
              """,
          due_date=(2023, 9, 26),  # warning introduced in 27 Jul 2022
      )
  
      # Run sub commands
      for cmd_name in self.get_sub_commands():
          self.run_command(cmd_name)
  
      tmp_dir = tempfile.mkdtemp()
      name = self.distribution.metadata.get_name()
      zip_file = os.path.join(tmp_dir, "%s.zip" % name)
      try:
          self.create_zipfile(zip_file)
          self.upload_file(zip_file)
      finally:
          shutil.rmtree(tmp_dir)
  
imports: from base64 import standard_b64encode
  from distutils import log
  from distutils.errors import DistutilsOptionError
  import os
  import zipfile
  import tempfile
  import shutil
  import itertools
  import functools
  import http.client
  import urllib.parse
  from .._importlib import metadata
  from ..warnings import SetuptoolsDeprecationWarning
  from .upload import upload
label_desc: Use image node_id 5 for calling the upload_docs obj's underlying member method code with example usage: obj.run() without return types