Explainer on what is supported
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Documentazione
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- documentation
Direzione di ricerca
Nell’issue non sono indicati file o test. Inizia esaminando la documentazione esistente sul typing di NumPy e i due esempi di mypy, quindi determina quali comportamenti e limitazioni dovrebbero essere documentati. Il lavoro è completato quando è disponibile una spiegazione chiara o un elenco di funzionalità che copra il comportamento di typing supportato e il caso di riduzione del rango.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Issue with current documentation:
Not necessarily related to numtype but NumPy typing in general. I'm a bit confused as to what is expected to work in user code and what isn't. Is there some documentation which explains this? Perhaps a page or simple list of features would help elucidate this for users.
As a concrete example - I'd like a type checker to be able to pick up this example related to reducing rank of the array. This should fail, but currently passes with mypy v1.19.1 NumPy v2.4.0 Python 3.14. Is this sort of thing even possible without language changes or runtime typing? Is support for this on the horizon?
from typing import NewType
from numpy import ndarray
import numpy as np
A = NewType("A", int)
B = NewType("B", int)
C = NewType("C", int)
type U8 = np.dtype[np.uint8]
# Should fail - currently pass. Actual returned type is `ndarray[tuple[B], U8]`
def f1(a: ndarray[tuple[A, B, C], U8]) -> ndarray[tuple[A, B], U8]:
return a[:, 2, :]
rng = np.random.default_rng(0)
a: ndarray[tuple[A, B, C], U8] = rng.integers(0, 100, size=(10, 20, 30), dtype=np.uint8)
print(f1(a).shape)
By contrast this correctly fails with mypy
# Should fail - correctly fails
# error: Incompatible return value type (got "ndarray[tuple[A, B, C], dtype[unsignedinteger[_8Bit]]]", expected "ndarray[tuple[A, C, B], dtype[unsignedinteger[_8Bit]]]") [return-value]
def f2(a: ndarray[tuple[A, B, C], U8]) -> ndarray[tuple[A, C, B], U8]:
return a + 2
a: ndarray[tuple[A, B, C], U8] = rng.integers(0, 100, size=(10, 20, 30), dtype=np.uint8)
print(f2(a).shape)
Idea or request for content:
No response
- Lingua principale
- Python
- Stelle
- 79
- Fork
- 8
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
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 numpy/numtype
-
topic: documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
long pyright analysis timesForse di nuovo libera @jorenham l’ha presa 415 giorni fa e non c’è nessuna pull request aperta. Apertablame: Pyright tool: basedpyright
-
numpy.generic stubs: Incomplete
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
-
_numtype stubs: Refactor
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
_numtype stubs: Refactor
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
Tutte le issue di numpy/numtype
Issue simili
-
needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
openvinotoolkit/openvino_notebooks#3665 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
docs
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
benchmark-gap
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno