われがわログ

最適化アルゴリズムとかプログラミングについて書きたい

シミュレーション用パラメータファイルとしてのtoml形式のススメ

シミュレーションのパラメータファイルを外部化しておくと、メンテ性、再現性などの面でなにかと都合がよい。 設定ファイル用のファイル形式としてはyamljsonなど様々なものが存在するが、 ここではシンプルに書けるtomlと、それをPythonで扱う方法を紹介する。 tomlは、Rustパッケージ管理ソフト「Cargo」および、Pythonパッケージ管理ソフト「Poetry」の設定ファイル形式としても採用されており、設定ファイル形式としての地位を確立しつつある。

tomlの仕様は下記のQiitaを参照。 qiita.com

原文はこちら。 github.com

tomlファイルは、例えば以下のように記述できる。

[global]
max_timestep = 100
param = 0

Pythonで扱うにはtomlパッケージをpipやanacondaなどからインストールする。 tomlを扱うサンプルプログラムを以下に示す。

出力結果は以下の通り。

100
0
----Parameters----
[global]
max_timestep = 100
param = 0

ちなみに、VS Codeでtomlを扱う際には、以下の拡張機能を入れておくとハイライトシンタックスが効いてわかりやすい。

marketplace.visualstudio.com