NDArray.__setitem__ raises AttributeError for list index keys
Maintainer antworten meist innerhalb von 2 Tagen
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 82/100
Rechercherichtung
Beginne in src/blosc2/ndarray.py beim Fancy-Index-Zweig von NDArray.setitem, besonders bei der Prüfung auf boolesche skalare Schlüssel um die Zeilen 5106–5108. Vergleiche Zuweisungen mit Listen- und Tupelschlüsseln mit den funktionierenden NumPy-Array-Fällen. Die Aufgabe ist erledigt, wenn diese Zuweisungen keinen AttributeError mehr auslösen und das bestehende Verhalten für Array-Schlüssel weiterhin funktioniert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Assigning with a fancy index that is a Python list, or a tuple that contains an index array or list, raises AttributeError (main d3bca9e5 and 4.14.1). Reading with the same keys works, and an index array as the whole key works too.
import blosc2, numpy as np
a = blosc2.zeros((20, 30, 40), dtype=np.float32)
idx = np.array([1, 3, 5])
a[idx] = np.ones((3, 30, 40), np.float32) # ok
a[[1, 3, 5]] = np.ones((3, 30, 40), np.float32) # AttributeError: 'list' object has no attribute 'shape'
a[[1, 3, 5], 3:17] = np.ones((3, 14, 40), np.float32) # AttributeError: 'tuple' object has no attribute 'shape'
a[idx, 3:17] = np.ones((3, 14, 40), np.float32) # AttributeError: 'tuple' object has no attribute 'shape'
a[2, [1, 3, 5]] = np.ones((3, 40), np.float32) # AttributeError: 'tuple' object has no attribute 'shape'
a[[1, 3, 5], 3:17] # reading works
Cause. The fancy-index branch of NDArray.__setitem__ checks for a scalar boolean key on the original key, key.shape == () and hasattr(key, "dtype") and ... (ndarray.py#L5106-L5108), which only works when key is a NumPy array. Testing isinstance(key, np.ndarray) (or getattr(key, "shape", None) == ()) first should be enough.
Found while testing write paths for #763; not fixed there to keep that PR to one change.
- Vorherrschende Sprache
- Python
- Sterne
- 214
- Forks
- 72
- Ø Merge
- 3 T. 9 Std.
- Gemergte PRs (30 T.)
- 24
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus Blosc/python-blosc2
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
Blosc/python-blosc2#757 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Blosc/python-blosc2#731 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
documentation sustain-2026
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Blosc/python-blosc2#720 · 3 Kommentare ·
Maintainer antworten meist innerhalb von 2 Tagen
-
sustain-2026
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
Blosc/python-blosc2#717 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
documentation sustain-2026
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
Blosc/python-blosc2#714 ·
Maintainer antworten meist innerhalb von 2 Tagen
Alle Issues in Blosc/python-blosc2
Ähnliche Issues
-
[BUG]: Compliance rules never see Unity Catalog views as viewsEvtl. vergeben @wagnercsantos hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
databrickslabs/ontos#1348 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
`forum_pr_poster` action will always return `none` when checking for pre-existing feedback threads, even if a feedback thread already exists.Evtl. vergeben @pgmzeta hat das heute übernommen. OffenE-Verified P-Major
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 79/100
goonstation/goonstation#28259 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
woonstadrotterdam/monumenten#70 ·
Maintainer antworten meist innerhalb von 15 Tagen
-
binding:python bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
open-webui/open-terminal#210 ·