cdgriffith / cdgriffith/Box

Feature request: extend `merge_update` into BoxLists

Open
#263 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
2.8k
Forks
135
PR merge metrics
No merged PRs in 30d

Description

# Current
If I have these two BoxDicts:

```python
In [1]: from box import Box
...: dict1 = Box({'data': [{'foo': 1, 'foobar': 20}, {'bar': 2}] }, box_dots=True)
...: dict2 = Box({'data': [{'foo': 1, 'baz': 10}] }, box_dots=True)
...: print(dict1.keys(dotted=True))
...: print(dict2.keys(dotted=True))
['data[0].foo', 'data[0].foobar', 'data[1].bar']
['data[0].baz', 'data[0].foo']
```

Then, if I use `merge_update` I get:

```python
In [2]: dict1 + dict2
Out[2]: Box({'data': [{'foo': 1, 'baz': 10}]})
```

# Expected behaviour
When merging the two datasets, it would be great if Box entered each list element and updated the dictionary:

```python
In [1]: dict1 + dict2
Out[1]: Box({'data': [{'foo': 1, 'foobar': 20, 'baz': 10}, {'bar': 2}]})
```

Since the BoxDict has a pseudo-key for elements of the lists (e.g., 'data[0].foo') it feels like it should be possible.

# Versions
python: 3.11
box: 7.1.1

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.