Open8
poetry global config メモ
Poetry で global config を設定したいので調査する
ヒントになりそう。
ソースを読む
上記のコメントのファイルではなくなっていたが、それっぽいのは見つけた
locations.py 19 ~ 22 を見るに、
- 環境変数
POETRY_CONFIG_DIR
の設定があればそのPATHを config dir とする - なければ、
user_config_path
関数の返り値を設定している
user_config_path を深堀りしていく
そもそも、user_config_path は platformdirs という外部のライブラリの関数
リポジトリURL
user_config_path のドキュメント
該当のソース
https://github.com/platformdirs/platformdirs/blob/main/src/platformdirs/init.py#L214-L227
user_config_path の挙動を Windows を前提に見ていく
前提
- sys.platform が
win32
を返すとき
実態はこいつになる
しかし、Windows Class に user_config_path は実装されていないので、基底 Class の PlatformDirsABC の実装を調べる。
以下のように user_config_path は user_config_dir の返り値 (str) を Path オブジェクト化して返すメソッドっぽい。
Windows Class に戻って調査する。
user_config_dir の実装を見ると、user_data_dir を返している。
user_data_dir
について調べる
そもそも、poetry からの呼ばれ方
_APP_NAME = "pypoetry"
DEFAULT_CACHE_DIR = user_cache_path(_APP_NAME, appauthor=False)
CONFIG_DIR = Path(
os.getenv("POETRY_CONFIG_DIR")
or user_config_path(_APP_NAME, appauthor=False, roaming=True)
)
実装
実装を追うのだるくなってきたので実際に実行して試してみる
ていうか、poetry の SSL 検証周りの設定って、global に設定できないのか...