On 7 May 2016 at 04:14, Donald Stufft <don...@stufft.io> wrote:
> While I personally prefer YAML to any of the options on a purely syntax based
> level, when you weigh in all the other considerations for this I think that it
> makes sense to go with TOML for it.
>
> The only other option I think that could work is what Chris (I think?)
> suggested and just use a Python literal evaluated using ``ast.literal_eval()``
> this is safe to do but it would make it harder for other languages to parse 
> our
> files. It's similar to the approach taken by Lua Rocks for how their packaging
> system works (although their uses variables instead of one big dictionary 
> which
> I think looks nicer) but Lua is much better suited for trying to execute 
> safely
> outside of ``ast.literal_eval()`` too.
>
> All in all, I think TOML is the right answer (and that's why my partially
> written PEP used TOML).

FWIW (and because obsessing about config formats is a long-running
hobby of mine :-)) my view is:

- JSON sucks as a human-editable format, because it's too strict over
things like commas and has no comments. It's supported by the stdlib,
though, which is nice.
- YAML ought to be wonderful, but it ended up over-engineered (yes, we
can ignore the bits we don't care about). Also, pyYAML is a bit of an
annoying dependency (big, reportedly slow unless you use the C
version) - not something I'd want pip to have to vendor.
- INI (ConfigParser) format is too simple for many use cases. It has
stdlib support, though.
- Python literals are good, but they define values, they aren't a file
format. We'd need to write a parser for "the rest"
- TOML seems pretty good, but is immature (I remember when YAML seemed
like TOML does now...) Also, it's unfamiliar to people (I wasn't aware
of the use in Rust)
- Just for a laugh, can I mention XML? :-)

Overall, *any* choice feels like I'm choosing the "best of a bad job" :-(

With all that said, I'm inclined to agree that TOML looks good.
Paul
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to