NDArray.__setitem__ raises AttributeError for list index keys
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 82/100
Piste de recherche
Commencez dans src/blosc2/ndarray.py, dans la branche d’indexation avancée de NDArray.setitem, en particulier au niveau de la vérification des clés booléennes scalaires autour des lignes 5106–5108. Comparez les affectations avec des clés de type liste et tuple aux cas fonctionnels avec des tableaux NumPy. Le travail est terminé lorsque ces affectations ne déclenchent plus AttributeError et que le comportement existant pour les clés de type tableau fonctionne toujours.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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.
- Langage dominant
- Python
- Étoiles
- 214
- Forks
- 72
- Merge moyen
- 3 j 9 h
- PR mergées (30 j)
- 24
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Blosc/python-blosc2
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
Blosc/python-blosc2#757 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Blosc/python-blosc2#731 ·
Les mainteneurs répondent en général sous 2 jours
-
documentation sustain-2026
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Blosc/python-blosc2#720 · 3 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
sustain-2026
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Blosc/python-blosc2#717 ·
Les mainteneurs répondent en général sous 2 jours
-
documentation sustain-2026
Difficulté 2/5 1-3 heures Accessibilité débutants 80/100
Blosc/python-blosc2#714 ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de Blosc/python-blosc2
Issues similaires
-
[BUG]: Compliance rules never see Unity Catalog views as viewsPeut-être pris @wagnercsantos l’a pris aujourd’hui. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
databrickslabs/ontos#1348 ·
Les mainteneurs répondent en général sous 3 jours
-
`forum_pr_poster` action will always return `none` when checking for pre-existing feedback threads, even if a feedback thread already exists.Peut-être pris @pgmzeta l’a pris aujourd’hui. OuverteE-Verified P-Major
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
goonstation/goonstation#28259 ·
Les mainteneurs répondent en général sous 2 jours
-
enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
woonstadrotterdam/monumenten#70 ·
Les mainteneurs répondent en général sous 15 jours
-
binding:python bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
The Browser tab fails with a Wayland error when Open Terminal runs from a Wayland desktop sessionOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
open-webui/open-terminal#210 ·