-
-
Notifications
You must be signed in to change notification settings - Fork 111
Closed
Description
Hi, nice work here. Thank you for the project.
I have a bug report to file.
x = tomlkit.parse('''
[root1.root2]
value = 1
[root1.root2.a.b.c]
value = 2
[WALRUS]
goo = "gjob"
[root1.root2.x]
value = 4
''')
x['root1']['root2']['a'].add('tmp', 'hi')
print(tomlkit.dumps(x))Expected (amongst other formatting possibilities):
[root1.root2]
value = 1
[root1.root2.a]
tmp = "hi"
[root1.root2.a.b.c]
value = 2
[WALRUS]
goo = "gjob"
[root1.root2.x]
value = 4But the code rather prints:
[root1.root2]
value = 1
[root1.root2.a]
[root1.root2.a.b.c]
value = 2
tmp = "hi"
[WALRUS]
goo = "gjob"
[root1.root2.x]
value = 4This TOML code places tmp = "hi" under a.b.c, not a (as the Python code said).
Another instance of the bug is:
x = tomlkit.parse('''
[root1.root2.a.b.c]
value = 2
[WALRUS]
goo = "gjob"
[root1.root2.x]
value = 4
''')
x['root1']['root2']['a'].add('tmp', 'hi')
print(tomlkit.dumps(x))(NOTE: the code is almost the same. The only difference is that [root1.root2] is gone in the TOML.)
In this case, the output does not change with .add(), nor even a direct setitem:
>>> x['root1']['root2']['a']['tmp'] = 'hi'
>>> x['root1']['root2']['a']
{'b': {'c': {'value': 2}}}
Maybe the update is happening on some kind of proxy object, which interacts badly with the original object, I don't know.
Maybe there's a bug in parsing out-of-order sections, cc. #196 #261?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels