Skip to content

|= does not work as expected on TOMLDocument #331

@5j9

Description

@5j9

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions