$HOME/.pypirc
ではなく.pypirc
ファイルをではなくカスタムの場所に指定することができますか?setuptools
はありますか?内部のリポジトリに公開するjenkinsジョブを設定していて、.pypirc
ファイルをジョブのワークスペース内に置いておきたいです。.pypircファイルのカスタムの場所
答えて
setuptools
(バージョン29.0.1)の最新バージョンでは、.pypirc
ファイルが$HOME
ディレクトリ(またはWindowsの場合は%USERPROFILE%
)から読み込まれます。
これは、setuptools.package_index.PyPIConfig
クラスで行われます。 GitHubの上source codeを参照してください:
class PyPIConfig(configparser.RawConfigParser):
def __init__(self):
"""
Load from ~/.pypirc
"""
defaults = dict.fromkeys(['username', 'password', 'repository'], '')
configparser.RawConfigParser.__init__(self, defaults)
rc = os.path.join(os.path.expanduser('~'), '.pypirc')
if os.path.exists(rc):
self.read(rc)
だから、私が見る唯一の解決策は、ジェンキンスジョブを実行する前に、一時的に再定義するHOME
環境変数です。
twineをチェックしてください。このツールでは、というファイルをオプションで指定できます。--config-file
これは、PyPIまたはカスタムリポジトリサーバーとの通信に使用されるデフォルトのコマンドクラスをオーバーロードすることで実行できます。これはあなたのsetup.py
スクリプトで行うことができます。コードを最初に話しましょう:
# this is your project's setup.py script
import os
from distutils.command.register import register as register_orig
from distutils.command.upload import upload as upload_orig
from setuptools import setup
class register(register_orig):
def _get_rc_file(self):
return os.path.join('.', '.pypirc')
class upload(upload_orig):
def _get_rc_file(self):
return os.path.join('.', '.pypirc')
setup(
name='myproj',
...
cmdclass={
'register': register,
'upload': upload,
}
)
ここで、たとえば、
$ python setup.py sdist register upload
サーバーの資格情報ではなく、デフォルト~/.pypirc
1のプロジェクトディレクトリに.pypirc
から取得されます。
基本的には、register
とupload
のコマンドを独自の実装に置き換えるだけで済みます。これらの実装は、独自のロジックで_get_rc_file
メソッドを再定義します。その後、setup
関数の引数cmd_class
を調整することを忘れないでください。標準のコマンドクラスではなく独自のコマンドクラスが使用されます。
もちろん、両方のクラスが同じメソッドを再定義するので、コードをたとえばmixinクラスを作成して再利用するなどです。また、upload_docs
コマンドでsphinxドキュメントをPyPIにアップロードする場合は、同じ方法でオーバーロードする必要があります。とにかく、上のスニペットからのコマンドオーバーロードの基本的な考え方を得るべきです。
- 1. カスタムplistファイルの場所
- 2. カスタムの場所にXMLファイルを保存
- 3. カスタムのプリコンパイルの場所?
- 4. Aureliaのカスタム表示場所
- 5. カスタム検証エラーメッセージの場所
- 6. CSVファイルのファイルの場所
- 7. Cのカスタム場所にファイルを保存するには
- 8. railsファイルの場所
- 9. javascriptファイルの場所
- 10. Stardog:stardog.propertiesファイルの場所
- 11. OS.File.writeAtomicファイルの場所
- 12. pip.confファイルの場所
- 13. App.configファイルの場所
- 14. UITableViewControllerファイルの場所
- 15. ASP.NET MVC 4カスタムHTMLヘルパーフォルダの場所
- 16. perlでのファイルの場所
- 17. xcartのproduct.tplファイルの場所
- 18. KDE5のマウス構成ファイルの場所Debian Stretchの場所
- 19. ファイルの場所を開く
- 20. iOS10 UserDefaultsファイルの場所/パス?
- 21. リアパストネイティブiOS - .ipaファイルの場所
- 22. Saiku 3.8 - .saikuファイルの場所
- 23. Android Studioファイルの場所?
- 24. NetLogo netlogo-headless.shファイルの場所
- 25. JSZip一時ファイルの場所
- 26. Web.Configのファイルと場所
- 27. Joomla PHPファイルの場所
- 28. Android Media Playerファイルの場所
- 29. Hadoopのファイル名場所
- 30. logging.ini設定ファイルの場所
ドッカーで実行すると、コンテナーに 'HOME' varを設定し、カスタム'/pypirc'をマウントすることができます – Rik