XLSXToDocument drops literal NA and N/A cell values
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
Direzione di ricerca
Inizia dall’implementazione di XLSXToDocument e ispeziona la sua chiamata a pandas.read_excel e la gestione di read_excel_kwargs. Riproduci il caso del workbook, quindi aggiungi una copertura mirata per i valori letterali NA/N/A insieme alle celle realmente vuote; il lavoro è completato quando entrambi i valori letterali sopravvivono alla conversione mentre le celle vuote rimangono vuote.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
XLSXToDocument turns text cells containing NA or N/A into empty output cells. These can be real values, such as a region code or an explicit status. Once the converter has emitted the Document, the original text cannot be recovered.
A small workbook with this sheet reproduces it:
| Code | Status |
|---|---|
| NA | OK |
| N/A | pending |
from io import BytesIO
from openpyxl import Workbook
from haystack.components.converters.xlsx import XLSXToDocument
from haystack.dataclasses import ByteStream
book = Workbook()
sheet = book.active
sheet.append(["Code", "Status"])
sheet.append(["NA", "OK"])
sheet.append(["N/A", "pending"])
data = BytesIO()
book.save(data)
content = XLSXToDocument().run([ByteStream(data.getvalue())])["documents"][0].content
print(repr(content))
# ',A,B\n1,Code,Status\n2,,OK\n3,,pending\n'
I ran this twice on main; both outputs were identical. Markdown output also leaves the two cells blank. The converter uses pd.read_excel without overriding pandas' default NA-string parsing. Passing read_excel_kwargs={"keep_default_na": False} avoids the loss, but users have to know to opt out before converting the workbook.
Could the converter preserve literal text values by default while still keeping truly blank cells empty? A similar loss in the CSV preprocessing components is tracked in #12784, but this is the XLSX converter's separate read_excel path. I can prepare a focused patch and tests if you'd like one.
- Lingua principale
- Python
- Stelle
- 26.6k
- Fork
- 3.2k
- Merge medio
- 1g 13h
- PR unite (30g)
- 263
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di deepset-ai/haystack
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
deepset-ai/haystack#13029 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
deepset-ai/haystack#13022 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
deepset-ai/haystack#12994 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
MarkdownHeaderSplitter treats headings inside longer closing fences as headersForse già presa @julian-risch l’ha presa 2 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
deepset-ai/haystack#12954 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Sockets.__getattribute__ references _sockets but the actual attribute is _sockets_dict — the optimization at lines 127-132 is dead code due to a typoForse già presa @julian-risch l’ha presa 4 giorni fa. ApertaP2
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 91/100
deepset-ai/haystack#12939 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di deepset-ai/haystack
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
letsencrypt/cp-cps#353 ·
-
Marble Madness II is missingAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
PedestrianDynamics/pyFDS-Evac#394 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
DOI-USGS/pywatershed#421 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
python-pillow/Pillow#10087 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno