class_docstr: Support setup.py upload.
code: def run(self):
      try:
          self.status("Removing previous builds…")
          rmtree(os.path.join(here, "dist"))
      except OSError:
          pass
  
      self.status("Cleaning build directory")
      os.system("{} setup.py clean --all".format(sys.executable))
  
      self.status("Building Source and Wheel (universal) distribution…")
      os.system(
          f"{sys.executable} setup.py sdist bdist_wheel --universal"
      )
  
      # self.status('Uploading the package to PyPI via Twine…')
      os.system("twine upload dist/*")
  
      if not self.rc:
          self.status("Pushing git tags…")
          os.system("git tag v{0}".format(VERSION))
          os.system("git push --tags")
  
      sys.exit()
  
file_path: aim/setup.py
imports: import sys
  import os
  import platform
  from shutil import rmtree
  from setuptools import find_packages, setup, Command, Extension
  from Cython.Build import cythonize
  from aimrocks import lib_utils
label_desc: Use image node_id 4 for calling the UploadCommand obj's underlying member method code with example usage: obj.run() without return types