Open8

poetry global config メモ

zztkmzztkm

Poetry で global config を設定したいので調査する

zztkmzztkm

locations.py 19 ~ 22 を見るに、

  • 環境変数 POETRY_CONFIG_DIR の設定があればそのPATHを config dir とする
  • なければ、user_config_path 関数の返り値を設定している

user_config_path を深堀りしていく

zztkmzztkm

user_config_path の挙動を Windows を前提に見ていく

前提

  • sys.platform が win32 を返すとき

実態はこいつになる
https://github.com/platformdirs/platformdirs/blob/main/src/platformdirs/windows.py#L12

しかし、Windows Class に user_config_path は実装されていないので、基底 Class の PlatformDirsABC の実装を調べる。

以下のように user_config_path は user_config_dir の返り値 (str) を Path オブジェクト化して返すメソッドっぽい。
https://github.com/platformdirs/platformdirs/blob/main/src/platformdirs/api.py#L123-L126

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)
)

実装
https://github.com/platformdirs/platformdirs/blob/main/src/platformdirs/windows.py#L22-L31

zztkmzztkm

実装を追うのだるくなってきたので実際に実行して試してみる

zztkmzztkm

ていうか、poetry の SSL 検証周りの設定って、global に設定できないのか...