code: def gemfury():
      
      # fury login
      # fury push dist/*.gz --as=YOUR_ACCT
      # fury push dist/*.whl --as=YOUR_ACCT
  
      cp = subprocess.run(("fury login --as={0}".format(GEM_FURY).split(" ")),
                          stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                          shell=False, check=True)
      print(cp.stdout)
  
      about = {}
      with open(os.path.join(SRC, PROJECT_NAME, "__version__.py")) as f:
          exec(f.read(), about)
      version = Version(about["__version__"])
      print("Have version : " + str(version))
      print("Preparing to upload")
  
      if version not in get_versions():
          for kind in ["gz", "whl"]:
              try:
                  files = glob.glob("{0}dist/*.{1}".format(SRC.replace(".", ""), kind))
                  for file_name in files:
                      cp = subprocess.run(("fury push {0} --as={1}".format(file_name, GEM_FURY).split(" ")),
                                          stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                          shell=False, check=True)
                      print("result of fury push")
                      for stream in [cp.stdout, cp.stderr]:
                          if stream:
                              for line in stream.decode().split("\n"):
                                  print(line)
  
              except subprocess.CalledProcessError as cpe:
                  print("result of fury push- got error")
                  for stream in [cp.stdout, cp.stderr]:
                      if stream:
                          for line in stream.decode().split("\n"):
                              print(line)
                  print(cpe)
                  raise
docs: Push to gem fury, a repo with private options