INIフォーマットとは? シンプルな設定ファイルの解説
INIフォーマットは、key = valueのペアを含む角括弧のセクションから構築される、シンプルで長年使われてきた設定スタイルです。
INIファイルは、最も古く最もシンプルな設定フォーマットの1つです。git config、Pythonのsetup.cfg、tox、そして多くのツールで今も見かけます。読むのは簡単ですが、単一の標準がないため、正確な振る舞いはファイルを読んでいるparserに依存します - CIで知っておく価値のある微妙な点です。
INIフォーマットとは
INIファイルは設定をセクションにまとめ、各セクションは角括弧内の名前で導入され、その後にkey = valueの行が続きます。フラットで読みやすいです。セクションの1レベルを超えるネストはなく、これによりシンプルに保たれますが、表現できるものが制限されます。
公式の標準がない
TOMLやJSONと違って、INIには正式な仕様がありません。parserはコメント文字(セミコロンかハッシュ)、値を引用符で囲むかどうか、大文字小文字の区別、重複キーの振る舞いについて食い違います。そのため、あるツールで動くINIファイルが、別のツールでは異なる振る舞いをすることがあります。
INI対TOML
TOMLはINIを正しくやり直すために設計されました: 同じ読みやすいセクションとキーのスタイルですが、本物の仕様、型付きの値、配列、ネストしたtableを備えています。プロジェクトが予測可能な解析を伴うINIのようなシンプルさを必要とするとき、今日では通常TOMLに手を伸ばします。
CIとツールにおけるINI
CIが実行するツールチェーン全体で、INIスタイルのファイルに出会います: .gitconfig、Pythonのsetup.cfgやtox.ini、flake8やpytestの設定、そして多くのlinter。CIではruntimeにINIを手で書くことはめったにありませんが、setupのstep中にテンプレートで値を挿入することはあるかもしれません。
# tox.ini consumed by a CI test step
[tox]
envlist = py310,py311
[testenv]
deps = pytest
commands = pytest生き残る理由
INIが生き残るのは、可能な限り最もシンプルな構造化設定だからです: 誰でも読んで編集でき、基本的なparserを書くのは簡単です。型やネストが不要なフラットな設定には、今も完全に使えます。
重要なポイント
- INIファイルは、key = valueのペアを含む角括弧のセクションからなるフラットな設定です。
- 公式の標準がないため、コメント構文、引用符、大文字小文字の扱いがparserによって異なります。
- TOMLは本質的に標準化された型付きの後継です。INIは今もgit configやPythonのツールに生きています。