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

Caching a box resuts in read error

Aperta
#260 1 commento 1 reazione 0 assegnatari Vedi su GitHub

@DSeaStar ci sta già lavorando.

Dal 14/8/2026.

  • #322 di @DSeaStar — aperta

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
python
Ambito
tooling

Direzione di ricerca

Inizia riproducendo la Python MWE fornita con Box 7.1.1 e joblib 1.3.2, quindi esamina l’implementazione di Box intorno a box/box.py:592 e il relativo comportamento di serializzazione. Il lavoro è completato quando una Box caricata con joblib conserva box_dots=True, così che l’accesso alle chiavi con punti funzioni di nuovo, e quando esiste un test di regressione per il fallimento mostrato.

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

Descrizione

bug

I have a use case where I want to cache boxes and read them back again. Below is a MWE using joblib for caching but I also found it doesn't work Flask caching. I think some metadata is lost when caching the box, so the retrieved box somehow is not a box with box_dots = True.

Code


import box
print(box.__version__)
from box import Box
import joblib
print(joblib.__version__)
b2 = Box(
    {
        "l1": {
            "time_range_selected_utc": {
                "left": "2023-03-01 10:00:00",
                "right": "2023-06-01 10:00:00",
            }
        }
    },
    box_dots=True,
    conversion_box=False,
    frozen_box=False,
)
print(b2.l1.time_range_selected_utc.left)
print(b2["l1.time_range_selected_utc.right"])
print(b2["l1.time_range_selected_utc.left"])

joblib.dump(b2, "boxdump.joblib")

b3 = joblib.load("boxdump.joblib")
print(b3.l1.time_range_selected_utc.left)
print(b3["l1.time_range_selected_utc.right"]) # this will fail
print(b3["l1.time_range_selected_utc.left"])

Output

7.1.1
1.3.2
2023-03-01 10:00:00
2023-06-01 10:00:00
2023-03-01 10:00:00
2023-03-01 10:00:00
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File [~/opt/miniconda3/envs/om3/lib/python3.9/site-packages/box/box.py:592](https://file+.vscode-resource.vscode-cdn.net/Users/sriki/Documents/cpnet/OmegaMuller/~/opt/miniconda3/envs/om3/lib/python3.9/site-packages/box/box.py:592), in box.box.Box.__getitem__()

KeyError: 'l1.time_range_selected_utc.right'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
File [~/opt/miniconda3/envs/om3/lib/python3.9/site-packages/box/box.py:592](https://file+.vscode-resource.vscode-cdn.net/Users/sriki/Documents/cpnet/OmegaMuller/~/opt/miniconda3/envs/om3/lib/python3.9/site-packages/box/box.py:592), in box.box.Box.__getitem__()

KeyError: 'time_range_selected_utc.right'

...
Lingua principale
Python
Stelle
2.8k
Fork
145
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.