Thanks so much for building python-benedict, it's really awesome!
So unfortunatley the underlying TOML library https://github.com/uiri/toml used by benedict has a bunch of long-time outstanding bugs that break parsing/loading and generally make it unsafe to load->dump->load the same string.
For example, you cannot dump any dict containing escape sequences without it throwing an exception:
>>> benedict({
"reset": "\033[00;00m",
"lightblue": "\033[01;30m",
}).to_toml()
...
File ~/test/.venv/lib/python3.11/site-packages/toml/encoder.py:113, in _dump_str(v)
111 else:
112 joiner = "u00"
--> 113 v = [v[0] + joiner + v[1]] + v[2:]
114 return unicode('"' + v[0] + '"')
IndexError: list index out of range
But thats not it, there are many other fairly major string escaping, quoting, and parse/dump cycle inconsistency bugs that have bitten other projects using uiri/toml:
Almost all of these are 2yr+ old, indicating they're probably not going to all get fixed anytime soon without significant increase in velocity. No harm no foul, it's open source we can't demand they go faster and they don't owe us anything, but maybe benedict could consider a different library with fewer major outstanding parser consistency issues?
Is benedict open to switching to a library without these issues? Maybe one of these:
I'll chip in $20 towards the work to make the switch if it's an option ⬇️
Thanks so much for building python-benedict, it's really awesome!
So unfortunatley the underlying TOML library https://github.com/uiri/toml used by benedict has a bunch of long-time outstanding bugs that break parsing/loading and generally make it unsafe to load->dump->load the same string.
For example, you cannot dump any dict containing escape sequences without it throwing an exception:
But thats not it, there are many other fairly major string escaping, quoting, and parse/dump cycle inconsistency bugs that have bitten other projects using
uiri/toml:Almost all of these are 2yr+ old, indicating they're probably not going to all get fixed anytime soon without significant increase in velocity. No harm no foul, it's open source we can't demand they go faster and they don't owe us anything, but maybe benedict could consider a different library with fewer major outstanding parser consistency issues?
Is benedict open to switching to a library without these issues? Maybe one of these:
I'll chip in $20 towards the work to make the switch if it's an option ⬇️