iedb.mhc.delete() and iedb.tcell.delete() download the IEDB export before deleting it

Aperta Adatta ai principianti
#64 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
85/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
data

Direzione di ricerca

Inizia con le funzioni delete() e local_path() in pepdata/iedb/mhc.py e pepdata/iedb/tcell.py, quindi confronta delete() in pepdata/iedb/alleles.py. Aggiungi un test per l’eliminazione quando il file non è nella cache, verificando che non venga effettuata alcuna richiesta di rete e che l’eliminazione non abbia effetto; esegui i test pertinenti. Il lavoro è completato quando tutte e tre le funzioni si comportano in modo coerente se i file non sono presenti.

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

Descrizione

Problem

pepdata.iedb.mhc.delete() and pepdata.iedb.tcell.delete() download the IEDB export if it isn't cached, and then delete it:

# pepdata/iedb/mhc.py:35-49 (tcell.py:46-60 is the same)
def local_path(auto_download=True):
    path = cache.local_path(...)
    if not os.path.exists(path):
        if auto_download:
            return download()
        ...
def delete():
    os.remove(local_path())

delete() calls local_path() with its default auto_download=True. On a machine without the cached file, a call meant to clean up therefore fetches the full MHC ligand or T-cell export from IEDB and then removes it.

iedb.alleles.delete() (alleles.py:32-38) behaves differently again. It skips the download but raises FileNotFoundError when the XML isn't cached. So the three delete() functions in one package don't agree on what a missing file means.

Evidence

Read at a5dffe3:

  • pepdata/iedb/mhc.py:35-49
  • pepdata/iedb/tcell.py:46-60
  • pepdata/iedb/alleles.py:32-38

Open PR #58 doesn't touch these functions.

Suggested fix

Have every delete() resolve the path with cache.local_path(...), which doesn't download, and remove the file inside contextlib.suppress(FileNotFoundError), so a missing file is a no-op in all three modules. Add a test that delete() with no cached file makes no network request.

https://claude.ai/code/session_01JHJhwj29oDqoeu7TYd34Pi

Lingua principale
Python
Stelle
58
Fork
16
Merge medio
2g 4h
PR unite (30g)
7

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

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 openvax/pepdata

Tutte le issue di openvax/pepdata

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.