python-poetry/tomlkit

`|=` does not work as expected on TOMLDocument

5j9 opened this issue · 0 comments

5j9 commented

I was expecting |= operator to work the same as .update method, because that's how Python dicts work, but |= on a TOMLDocument seems to have no effect:

from tomlkit import TOMLDocument

d1 = TOMLDocument()
d1['a'] = {'b': 'c'}
d2 = TOMLDocument()
d2['a'] = {'b': 'Z'}
d1['a'] |= d2['a']  # expected to be the same as d1['a'].update(d2['a']), but it's not

assert d1 == {'a': {'b': 'Z'}}, d1  # AssertionError: {'a': {'b': 'c'}}

Same code using a Python dict:

d1 = {'a': {'b': 'c'}}
d2 = {'a': {'b': 'Z'}}

d1['a'] |= d2['a']

assert d1 == {'a': {'b': 'Z'}}  # no error