概要
pyproject.tomlに以下のように設定を記述した後にblackを実行したところ、「Error reading configuration file: This float doesn't have a leading digit」というエラーが発生してしばらくハマった。
[tool.black] line-length = 119 [tool.isort] multi_line_output = 3 include_trailing_comma = True force_grid_wrap = 0 line_length = 119 use_parentheses = True
原因
pyproject.tomlのBoolean値は先頭大文字ではなく全て小文字で書かなければいけなかった。
include_trailing_comma = true use_parentheses = true
気づいた経緯
設定値をいったん全て削除してから、1行ずつ戻してはblackを実行するを繰り返すことで、設定値がBooleanの行が存在するとエラーが発生するということまでは切り分けられた。
検索したところ、以下に同様の問題でissueを立てている人を発見した。
github.com
issue内の
those two lines are invalid according to the TOML documentation.
Boolean values use lowercase identifiers in TOML.
https://github.com/toml-lang/toml#user-content-boolean
というコメントを見て気づけた。
間違えた理由
blackの公式ドキュメントにisortと互換性のある設定の記述方法を紹介してくださっている項目があるのだが、そこが「True」と先頭が大文字になっていたので、そのままコピペしてしまった。
github.com
ただ、ドキュメントをちゃんと読むと、その下に設定ファイルの種類ごとの記述が紹介されていて、「pyproject.toml」のプルダウンを開くと確かに「true」と小文字になっていた。
github.com