Feature request: extend `merge_update` into BoxLists
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne damit, das im Issue beschriebene Verhalten von merge_update und die Behandlung von BoxLists zu lokalisieren, und untersuche anschließend, sofern vorhanden, bestehende merge-bezogene Tests. Vergleiche das aktuelle Ersetzen der Daten mit der erwarteten Aktualisierung Element für Element, und definiere den Abschluss so, dass vorhandene Listen-Dictionaries erhalten bleiben und Felder aus übereinstimmenden eingehenden Elementen hinzugefügt werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Current
If I have these two BoxDicts:
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:
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:
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
- Vorherrschende Sprache
- Python
- Sterne
- 2.8k
- Forks
- 144
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus cdgriffith/Box
-
subclass of `Box` does not unpickle correctlyEvtl. vergeben @koriyoshi2041 hat das vor 152 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
cdgriffith/Box#308 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
cdgriffith/Box#307 · 1 Kommentar ·
-
Dotted keys read from YAML are lost with box_dots / default_boxEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 48/100
cdgriffith/Box#305 ·
-
[Bug] Camel killer box and box dots gives unexpected behaviourEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 30/100
cdgriffith/Box#300 ·
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 42/100
cdgriffith/Box#298 ·
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 4 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
ClockGU/clockwork-backend#169 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
aws-samples/sample-per-model-bedrock#616 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
chnm/teachinghistory-hugo#47 ·
-
good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 67/100
pandas-dev/pandas-stubs#2047 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag