(Judging by https://docs.python.org/3/library/, there are 17 of them already, disregarding zlib, mostly niche and of ancient lineage. Comparing with https://docs.python.org/2/library/, it looks like three have been added in the py3k era. reprlib in 3.0 (with unpythonic naming conventions, dunno what’s up with that), pathlib in 3.4, and graphlib in 3.9 (though the version it was added in is missing from the page; I invite someone else to fix this or file a bug report)—so I guess -lib suffixes aren’t quite as dead as I’d thought.)
Who knows, it could be a good feature to earn the 4.0 moniker.
Leaving users having to guess where in the hierarchy you decided to hide something, that they know they’re looking for doesn’t add value. No, just keep it flat and simple.
Yes, "toml" would be perfect, but we're getting "tomllib" instead, due to the lack of namespacing that the parent comment is lamenting.
The problem with the current situation is that (1) every project has to keep all the standard library modules in mind and make sure to never name a module "io", "site" or "email", etc. and (2) once a non-conflicting name has been picked (e.g. "toml") it will break if the standard library later introduces a module with the same name.
(I'm not advocating for Java's endless chain of single-child directories though.)
Toml is ill-defined as well. ini files work fine for these trivial uses.
https://hitchdev.com/strictyaml/why-not/toml/
So now you have two flawed ways to do it, congrats.
Python 2 is EOL, so that's no longer a concern.
As for differences between Python 3 releases, isn't there a fairly large difference in TOML support as well, since in versions before 3.11 it doesn't work at all? Wouldn't specifying the behaviour of the INI parser as whatever 3.11 is doing (and raising an exception on earlier versions) amount to essentially the same thing?
However you prefer to work, your tools may now be easier to test and maintain. This change is good for everyone.
Otherwise, adding tools to the standard library to read file formats required by the ecosystem is a good idea, regardless of whether you agree with the particular format.
History has shown that worrying about an incompatibility with the moribund Python 2 that never affected trivial packaging config was a waste of time.
Meanwhile we still have a setup.cfg on a work project, has worked without issue for 15+ years.
We have a 15 year old setup.cfg in one project at work, many other .ini's... has never been an issue.
It's what your Terraform files are primarily written in