-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Assume there is no bytes/bytearray/memoryview implicit promotion #9001
Labels
project: policy
Organization of the typeshed project
Comments
Sounds good, but this is quite a large task:
|
Hopefully most of them will be fairly easy. I'll update our docs to reflect this convention, then open a new issue with a TODO list for reviewing the stubs. |
hauntsaninja
added a commit
to hauntsaninja/mypy
that referenced
this issue
Oct 27, 2022
It might be useful to run mypy_primer without promotions in typeshed. This would give us more confidence in changes stemming from python/typeshed#9001
hauntsaninja
added a commit
to python/mypy
that referenced
this issue
Oct 27, 2022
It might be useful to run mypy_primer without promotions in typeshed. This would give us more confidence in changes stemming from python/typeshed#9001
hauntsaninja
added a commit
to python/mypy
that referenced
this issue
Oct 27, 2022
It might be useful to run mypy_primer without promotions in typeshed. This would give us more confidence in changes stemming from python/typeshed#9001
JelleZijlstra
added a commit
that referenced
this issue
Oct 28, 2022
This was referenced Oct 28, 2022
hauntsaninja
pushed a commit
that referenced
this issue
Oct 28, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Currently, we treat
bytearray
andmemoryview
as implicit subclasses ofbytes
, following the CPython documentation. In PEP 688, I propose to remove this implicit promotion. Discussion is still ongoing, but I'd like to make sure typeshed is ready for this change by reviewing existing usage ofbytes
.To make that easier, I propose that we write stubs as if there is no implicit promotion between
bytes
,bytearray
, andmemoryview
. Thus, if a function accepts eitherbytes
orbytearray
, we should writebytes | bytearray
, not justbytes
.The only cost here should be that certain argument annotations become longer; everything should still work fine for type checkers that assume the implicit promotion.
If we agree on this rule, I can review existing
bytes
annotations for correctness. In my experience, most usages ofbytes
in argument positions should beReadableBuffer
.The text was updated successfully, but these errors were encountered: