-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Currently, we treat bytearray and memoryview as implicit subclasses of bytes, 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 of bytes.
To make that easier, I propose that we write stubs as if there is no implicit promotion between bytes, bytearray, and memoryview. Thus, if a function accepts either bytes or bytearray, we should write bytes | bytearray, not just bytes.
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 of bytes in argument positions should be ReadableBuffer.