adapter.aasx: Failsafe writer adds duplicate parts for conflicting files
I maintainer di solito rispondono entro 4 giorni
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 85/100
Direzione di ricerca
La gestione dei conflitti si trova in sdk/basyx/aas/adapter/aasx.py intorno alle righe 777–796, e l’issue indica test_writing_file_twice come copertura correlata. Leggi il ramo failsafe ed esegui prima quel test; aggiungi copertura per i contenuti dei file in conflitto. Il lavoro è terminato quando la modalità failsafe registra il conflitto e salta la parte in conflitto, preservando il primo file nel pacchetto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When two write_aas() / write_all_aas_objects() calls write a
supplementary file with the same name but different content, the
writer detects the conflict. With failsafe=False it raises
ValueError. With failsafe=True it logs the error but does not skip
the file, and writes the part a second time:
Steps to reproduce:
def store(sm_id, content):
sm = model.Submodel(sm_id, submodel_element=[
model.File("f", "application/pdf", "/aasx/manual.pdf")])
files = aasx.DictSupplementaryFileContainer()
files.add_file("/aasx/manual.pdf", io.BytesIO(content),
"application/pdf")
return model.DictIdentifiableStore([sm]), files
with aasx.AASXWriter("dup.aasx", failsafe=True) as w:
w.write_all_aas_objects("/aasx/a.json", *store("urn:sm:1", b"AAA"))
w.write_all_aas_objects("/aasx/b.json", *store("urn:sm:2", b"BBB"))
# UserWarning: Duplicate name: 'aasx/manual.pdf'
Expected behavior: In failsafe mode the conflicting file is logged
and skipped, like a missing file a few lines above.
Actual behavior: The ZIP contains aasx/manual.pdf twice. Reading
the package back, both submodels get BBB; the content AAA of
urn:sm:1 is lost.
Environment: develop @ 2773ac06.
Possible fix: Add continue after the logger.error(...) in the
failsafe branch. The fall-through predates #378, which added the
ValueError for the non-failsafe case. test_writing_file_twice
only covers identical content.
- Lingua principale
- Python
- Stelle
- 106
- Fork
- 59
- Merge medio
- 4g 1h
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun 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 eclipse-basyx/basyx-python-sdk
-
server: XML responses contain `cursor="None"` on the last pageForse già presa @qiaobochi040726-source l’ha presa 2 giorni fa. Apertabug good-first-issue server
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
eclipse-basyx/basyx-python-sdk#673 ·
I maintainer di solito rispondono entro 4 giorni
-
enhancement good-first-issue server
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
eclipse-basyx/basyx-python-sdk#670 ·
I maintainer di solito rispondono entro 4 giorni
-
bug good-first-issue sdk
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
eclipse-basyx/basyx-python-sdk#665 ·
I maintainer di solito rispondono entro 4 giorni
-
bug server
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
eclipse-basyx/basyx-python-sdk#663 ·
I maintainer di solito rispondono entro 4 giorni
-
README CI badge is brokenForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
eclipse-basyx/basyx-python-sdk#656 ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di eclipse-basyx/basyx-python-sdk
Issue simili
-
request-theme
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 66/100
LizardByte/ThemerrDB#9575 ·
I maintainer di solito rispondono entro 1 giorno
-
Author Page: noshin-nawalApertaauthor-page correction
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
acl-org/acl-anthology#10599 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
zilliztech/memsearch#818 ·
I maintainer di solito rispondono entro 1 giorno
-
[FAQ] Commit ID for ProjectsForse già presa @github-actions l’ha presa oggi. Apertafaq-proposal
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
DataTalksClub/faq#503 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
README.zh-CN/ja/es still hard-code 501 test counts after README.md went count-freeForse già presa @Aaqibhafeezkhan l’ha presa oggi. Apertabeginner documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
BistaDinesh03/critique#164 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno