ライブラリのアップロードはそう頻繁にあることじゃなく、ついつい手順を忘れてしまうのでスクリプトを書きました。
いちおうアップロードの直前に「本当にアップロードしても良いか?」聞くおまけ付きです。
いちおう全文英語なのでOSSのリポジトリとかにうっかり入れても安心。
upload.ps1
Remove-Item "*.egg-info" -Recurse
Remove-Item "dist" -Recurse
Remove-Item "build" -Recurse
python setup.py sdist
python setup.py bdist_wheel
$title = "PyPI upload?"
$message = "The package was created in the `dist` folder. Can I continue uploading to PyPI?"
$tChoiceDescription = "System.Management.Automation.Host.ChoiceDescription"
$options = @(
New-Object $tChoiceDescription ("Yes(&Y)", "Upload the library to PyPI.")
New-Object $tChoiceDescription ("No(&N)", "Cancel the upload. The library remains in the `dist` folder.")
)
$result = $host.ui.PromptForChoice($title, $message, $options, 0)
switch ($result)
{
0 {
twine upload dist/*
break
}
1 {
"Cancel the upload. The library remains in the `dist` folder."
break
}
}
なお、アップロードに必要なsdist
、wheel
、twine
コマンドは事前にインストール済み、PyPIアカウントの情報は.pypirc
に記入済みであるものとします(この辺の処理がまだの人は参考記事を読んでください)。
参考記事
- Pythonで作成したライブラリを、PyPIに公開/アップロードする - Qiita
- PowerShell で選択肢メニューと、それに伴う分岐処理を簡潔に書きたい - Qiita:結局複雑なコードにならなかったので、ここに書かれているコードは利用していません
- Windows PowerShell Tip of the Week | Microsoft Docs