Skip to content

Latest commit

 

History

History
20 lines (16 loc) · 1.24 KB

tomllib.md

File metadata and controls

20 lines (16 loc) · 1.24 KB
published id author traces pep depends_on
2023-03-07
718
orsinium
module
tomllib
680
pyproject-toml

tomllib

To recap: PEP-518 introduced pyproject.toml, and many Python tools started to use it to store their configs. The issue, however, is that there is no module in stdlib to parse TOML. So, different tools started to use different third-party packages for the task:

  • tomli (used by mypy) is a pure Python library that can only read TOML.
  • toml (used by most of the tools) can both read and write TOML.
  • tomlkit (used by poetry) can read, write, and modify TOML (preserving the original formatting and comments).

PEP 680 (landed in Python 3.11) introduced tomli into stdlib. But why tomli and not another library? It's pure Python and minimalistic. It cannot write TOML files, but reading is enough for most of the tools to work with pyproject.toml. And to avoid unpleasant conflicts when tomli is installed in the same environment, the name of the module was changed to tomllib.