Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork10.9k
TYP: Optionalnumpy.number
type parameters#27736
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
charris merged 2 commits intonumpy:mainfromjorenham:typing/scalar-type-parameter-defaultsNov 14, 2024
Merged
TYP: Optionalnumpy.number
type parameters#27736
charris merged 2 commits intonumpy:mainfromjorenham:typing/scalar-type-parameter-defaultsNov 14, 2024
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
8c46459
intonumpy:main 69 checks passed
Uh oh!
There was an error while loading.Please reload this page.
Thanks Joren. |
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The type parameters of
np.number
and its abstract subtypes now default toAny
.This means that typecheckers will now infer
np.floating
asnp.floating[Any]
, instead of rejecting it (when configured in strict mode).This affects
np.number
np.integer
np.signedinteger
np.unsignedinteger
np.inexact
np.floating
np.complexfloating
(by building uponTYP: Optional 2ndnumpy.complexfloating
type parameter #27420)The reason for choosing
Any
as the default, instead of setting it to the upper bound (numpy.typing.NBitBase
), is because these type parameters (TypeVar
s) are invariant.If they weren't invariant, then
x: int16 = int8(3)
would be a valid statement, which we probably don't want. So the invariance means thatx: number[NBitBase] = int8(3)
is rejected, butx: number[Any] = int8(3)
is accepted.I usually tend to avoid using
Any
, but because those_NBit
type-parameters aren't actually annotating anything, theAny
won't affect anything "outside" of thenumber
types, so it's no problem to use it here.