Two small JAX-related cleanups
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
Read src/array_api_extra/_lib/_helpers.py around the JAX capabilities() workaround and src/array_api_extra/_agnostic/_set.py around nunique. The issue leaves removal of the workaround contingent on deciding whether to support JAX versions below 0.6.0, so first check project policy and tests. Done means the comments accurately describe JAX's unique_counts behavior, and any shim or minimum-version documentation reflects the project's support decision.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
1. Drop the capabilities() shim for jax < 0.6.0?
_helpers.capabilities forces "boolean indexing" to False for JAX. This works around jax-ml/jax#27418, which was fixed in JAX 0.6.0 (March 2025). CI pins jax >= 0.10.2, so this branch never runs there (it is marked # pragma: no cover).
The package doesn't declare a minimum JAX version, so whether to remove it is a policy question: do we still want to support JAX < 0.6.0 at runtime? If not, the branch can be deleted:
out = xp.__array_namespace_info__().capabilities()
if _compat.is_torch_namespace(xp):
...
Removing it would also be a good moment to document a minimum supported JAX version.
2. Inaccurate comment in nunique
# 3. backend does not have unique_counts; e.g. wrapped JAX
JAX does have unique_counts. It takes the O(n log n) sort-based path because capabilities()["data-dependent shapes"] is False (the output shape of unique_counts can't be known under jax.jit). Also, JAX is no longer "wrapped": jax.numpy is used directly. Suggested wording:
# 3. backend lacks data-dependent shapes, so unique_counts is unusable
# (e.g. JAX, whose output shape can't be known under jax.jit)
The comment just below it, # xp does not have unique_counts; O(n*logn) complexity, should be updated the same way.
- Lenguaje dominante
- Python
- Estrellas
- 33
- Forks
- 33
- Merge medio
- 1 h 2 min
- PR fusionados (30 d)
- 36
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de data-apis/array-api-extra
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
data-apis/array-api-extra#1005 · 15 comentarios ·
Los mantenedores suelen responder en 1 día
-
ENH: new function `replace`Abiertoenhancement new function
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
data-apis/array-api-extra#992 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
ENH, TST: Add support for MLX as array backendPosiblemente ocupada @prady0t la tomó hace 3 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
data-apis/array-api-extra#1006 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
data-apis/array-api-extra#1002 ·
Los mantenedores suelen responder en 1 día
-
testing
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
data-apis/array-api-extra#901 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de data-apis/array-api-extra
Issues similares
-
changelog investigate
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ramnes/notion-sdk-py#409 ·
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
lindicaphxag-tech/kaggle#28 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
BSData/horus-heresy-3rd-edition#3211 ·
Los mantenedores suelen responder en 1 día
-
bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
bug tests
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día