This project is experimental and under active development Issue reports and contributions are very welcome.
Please notice, the provided
.ini/.cfg files should follow the same syntax
supported by Python’s
ConfigParser library (here referred to as INI syntax)
and more specifically abide by
ConfigUpdater restrictions (e.g., no
interpolation or repeated fields).
ini2toml comes in two flavours: “lite” and “full”. The “lite”
flavour will create a TOML document that does not contain any of the comments
from the original
.ini/.cfg file. On the other hand, the “full” flavour
will make an extra effort to translate these comments into a TOML-equivalent
(please notice sometimes this translation is not perfect, so it is always good
to check the TOML document afterwards).
To get started, you need to install the package, which can be easily done
$ pipx install 'ini2toml[lite]'
$ pipx install 'ini2toml[full]'
Now you can use
ini2toml as a command line tool:
# in you terminal
$ ini2toml --help
$ ini2toml path/to/ini/or/cfg/file
You can also use
ini2toml in your Python scripts or projects:
# in your python code
from ini2toml.api import Translator
profile_name = "setup.cfg"
toml_str = Translator().translate(original_contents_str, profile_name)
More details about
ini2toml and its Python API can be found in our docs.
If you consider contributing to this project, have a look on our contribution guides.
This project was initially created in the context of PyScaffold, with the
purpose of helping migrating existing projects to PEP 621-style
configuration when it is made available on
For details and usage information on PyScaffold see https://pyscaffold.org/.