> great that you don't need quotes for keys, but why do you need quotes for values ...
Quotes for string values are very important because they avoid ambiguity [1][2] and the type of quotes (single or double) tells the deserializer how to treat the string: as an ordinary string (which may have escape sequences) or a raw string.
> ... is there no way to simplify data types a bit to be able to get rid of those?
String values already benefit from a simplification: quotes can be placed inside a string (ordinary or raw) without a backslash to escape them. This is not the case in TOML: "Since there is no escaping, there is no way to write a single quote inside a literal string enclosed by single quotes. Luckily, TOML supports a multi-line version of literal strings that solves this problem." (https://toml.io/en/v1.0.0#string)
> for configs it's surprisingly poor with only a-z_ keys
Config dictionary keys follow the identifier naming rules in C to enable mapping between config keys and variables. Therefore, one could (at least in Python) pass a config dict as arguments to functions like this:
from paradict import ConfigFile
def my_func(arg1=42, arg2=True, **kwargs):
pass
# load user_config from the 'config.dict' file
path = "/path/to/config.dict"
confile = ConfigFile(path)
user_config = confile.get("user")
# pass user_config to my_func
my_func(**user_config)
[1] https://news.ycombinator.com/item?id=30052128