Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Feature request: extend `merge_update` into BoxLists

Aperta
#263 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

@Kaustbh ci sta già lavorando.

Dal 3/5/2024.

  • #323 di @ChrisJr404 — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
backend

Direzione di ricerca

Inizia individuando il comportamento di merge_update e la gestione di BoxLists descritti nell'issue, quindi esamina i test esistenti relativi a merge, se disponibili. Confronta la sostituzione attuale dei dati con l'aggiornamento previsto elemento per elemento e definisci il completamento come la conservazione dei dizionari di liste esistenti aggiungendo al contempo i campi degli elementi in ingresso corrispondenti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

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

Lingua principale
Python
Stelle
2.8k
Fork
140
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di cdgriffith/Box

Tutte le issue di cdgriffith/Box

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.