我正在开发包并将包的开发/测试/等版本上传到本地 devpi 服务器。
为了防止意外上传到PyPi,我采用了以下常见做法:
setup(...,
classifiers=[
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Private :: Do not Upload"
],
...)
Run Code Online (Sandbox Code Playgroud)
效果很好,但是当我最终准备好将包上传到 PyPi 时呢?
我想出了一个完全丑陋但简单的技巧,它要求我将分类器定义为 setup() 调用之外的全局变量,如下所示:
CLASSIFIERS = [
"Programming Language :: Python",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7"
]
if "--public" not in sys.argv:
CLASSIFIERS.append("Private :: Do Not Upload")
else:
sys.argv.remove("--public")
setup(...
classifiers=CLASSIFIERS,
...)
Run Code Online (Sandbox Code Playgroud)
另一个也许更简单的选择是仅仅注释掉“私人::请勿上传”,但这似乎并不比我的黑客更专业。
我想做的是创建一个名为的上传命令的适当子类SafeUpload,并让它检查--publiccmd-line 选项。也许,由于在上传之前可能存在构建,因此SafeBuild …