1from distutils import log 2from distutils.command import upload as orig 3 4from setuptools.errors import RemovedCommandError 5 6 7class upload(orig.upload): 8 """Formerly used to upload packages to PyPI.""" 9 10 def run(self): 11 msg = ( 12 "The upload command has been removed, use twine to upload " 13 + "instead (https://pypi.org/p/twine)" 14 ) 15 16 self.announce("ERROR: " + msg, log.ERROR) 17 raise RemovedCommandError(msg) 18