Experiment: remove bytearray -> bytes promotion by JelleZijlstra · Pull Request #12661 · python/mypy (original) (raw)
Diff from mypy_primer, showing the effect of this PR on open source code:
python-chess (https://github.com/niklasf/python-chess)
- chess/gaviota.py:1835: error: Incompatible types in assignment (expression has type "bytearray", variable has type "bytes") [assignment]
- chess/engine.py:860: error: Argument 1 of "write" is incompatible with supertype "WriteTransport"; supertype defines the argument type as "bytes | bytearray | memoryview" [override]
- chess/engine.py:860: note: This violates the Liskov substitution principle
- chess/engine.py:860: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
mitmproxy (https://github.com/mitmproxy/mitmproxy)
- mitmproxy/dns.py:296: error: Argument 1 to "unpack_from_with_compression" has incompatible type "bytes | bytearray"; expected "bytes" [arg-type]
- mitmproxy/dns.py:334: error: Argument 1 to "unpack_from_with_compression" has incompatible type "bytes | bytearray"; expected "bytes" [arg-type]
- mitmproxy/dns.py:340: error: Argument 5 to "ResourceRecord" has incompatible type "bytes | bytearray"; expected "bytes" [arg-type]
- mitmproxy/proxy/layers/tls.py:551: error: Argument 1 to "dtls_parse_client_hello" has incompatible type "bytearray"; expected "bytes" [arg-type]
- mitmproxy/proxy/layers/tls.py:553: error: Argument 1 to "parse_client_hello" has incompatible type "bytearray"; expected "bytes" [arg-type]
steam.py (https://github.com/Gobot1234/steam.py)
- steam/app.py:246: error: Argument 1 to "verify_signature" has incompatible type "memoryview"; expected "bytes" [arg-type]
- steam/state.py:2996: error: Argument 1 to "receive" of "SteamWebSocket" has incompatible type "bytearray"; expected "bytes" [arg-type]
websockets (https://github.com/aaugustin/websockets)
- src/websockets/streams.py:52: error: Incompatible return value type (got "bytearray", expected "bytes") [return-value]
- src/websockets/streams.py:75: error: Incompatible return value type (got "bytearray", expected "bytes") [return-value]
- src/websockets/streams.py:97: error: Incompatible return value type (got "bytearray", expected "bytes") [return-value]
git-revise (https://github.com/mystor/git-revise)
- gitrevise/utils.py:85: error: Incompatible return value type (got "bytearray", expected "bytes") [return-value]
aioredis (https://github.com/aio-libs/aioredis)
- aioredis/connection.py:952: error: Argument 1 to "append" of "list" has incompatible type "bytes | memoryview"; expected "bytes" [arg-type]
- aioredis/connection.py:981: error: Subclass of "bytes" and "memoryview" cannot exist: "memoryview" is final [unreachable]
- aioredis/connection.py:987: error: Subclass of "bytes" and "memoryview" cannot exist: "memoryview" is final [unreachable]
- aioredis/client.py:1921: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2160: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2173: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2608: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2616: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2621: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2629: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2666: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:2674: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
- aioredis/client.py:3176: error: Value of type variable "_KeyT" of "list_or_args" cannot be "Sequence[int] | str" [type-var]
boostedblob (https://github.com/hauntsaninja/boostedblob)
- boostedblob/write.py:67: error: Argument "data" to "Request" has incompatible type "Union[bytes, bytearray, memoryview]"; expected "Union[Dict[str, Any], bytes, None]" [arg-type]
- boostedblob/write.py:88: error: Argument "data" to "Request" has incompatible type "Union[bytes, bytearray, memoryview]"; expected "Union[Dict[str, Any], bytes, None]" [arg-type]
- boostedblob/write.py:405: error: Argument "data" to "Request" has incompatible type "Union[bytes, bytearray, memoryview]"; expected "Union[Dict[str, Any], bytes, None]" [arg-type]
dulwich (https://github.com/dulwich/dulwich)
- dulwich/config.py:388: error: Incompatible types in assignment (expression has type "bytearray", variable has type "bytes") [assignment]
mongo-python-driver (https://github.com/mongodb/mongo-python-driver)
- pymongo/network.py:335: error: Argument 1 to "decompress" has incompatible type "memoryview"; expected "bytes" [arg-type]
- pymongo/network.py:337: error: Incompatible types in assignment (expression has type "memoryview", variable has type "bytes") [assignment]
- pymongo/message.py:1238: error: Argument 1 to "_inflate_bson" has incompatible type "memoryview"; expected "bytes" [arg-type]
operator (https://github.com/canonical/operator)
- ops/pebble.py:3021: error: Argument 1 to "_next_part_boundary" has incompatible type "bytearray"; expected "bytes" [arg-type]
- ops/pebble.py:3037: error: Argument 1 has incompatible type "bytearray"; expected "bytes" [arg-type]
- ops/pebble.py:3041: error: Argument 1 to "_next_part_boundary" has incompatible type "bytearray"; expected "bytes" [arg-type]
- ops/pebble.py:3045: error: Argument 1 to "call" of "_BodyHandler" has incompatible type "bytearray"; expected "bytes" [arg-type]
- ops/pebble.py:3052: error: Incompatible types in assignment (expression has type "bytearray", variable has type "bytes") [assignment]
trio (https://github.com/python-trio/trio)
- src/trio/_unix_pipes.py:130: error: Argument 1 of "send_all" is incompatible with supertype "SendStream"; supertype defines the argument type as "Union[bytes, bytearray, memoryview]" [override]
- src/trio/_unix_pipes.py:130: note: This violates the Liskov substitution principle
- src/trio/_unix_pipes.py:130: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
- src/trio/_highlevel_generic.py:122: error: Incompatible return value type (got "Union[bytes, bytearray]", expected "bytes") [return-value]
- src/trio/_tests/test_testing.py:421: error: Incompatible return value type (got "bytearray", expected "bytes") [return-value]
- src/trio/_tests/test_ssl.py:274: error: Argument 1 of "send_all" is incompatible with supertype "SendStream"; supertype defines the argument type as "Union[bytes, bytearray, memoryview]" [override]
- src/trio/_tests/test_ssl.py:274: note: This violates the Liskov substitution principle
- src/trio/_tests/test_ssl.py:274: note: See https://mypy.readthedocs.io/en/stable/common_issues.html#incompatible-overrides
- src/trio/_tests/test_dtls.py:456: error: No overload variant of "sendto" of "SocketType" matches argument types "Sequence[int]", "Tuple[str, int]" [call-overload]
- src/trio/_tests/test_dtls.py:456: note: Possible overload variants:
- src/trio/_tests/test_dtls.py:456: note: def sendto(self, Buffer, Union[Tuple[object, ...], str, Buffer], /) -> Coroutine[Any, Any, int]
- src/trio/_tests/test_dtls.py:456: note: def sendto(self, Buffer, int, Union[Tuple[object, ...], str, Buffer], /) -> Coroutine[Any, Any, int]
- src/trio/_tests/test_dtls.py:488: error: Argument "payload" to "evolve" of "UDPPacket" has incompatible type "bytearray"; expected "bytes" [arg-type]
aiohttp (https://github.com/aio-libs/aiohttp)
- aiohttp/http_websocket.py:402:29: error: Argument 1 to "decompress_sync" of "ZLibDecompressor" has incompatible type "bytearray"; expected "bytes" [arg-type]
- aiohttp/http_websocket.py:664:23: error: Incompatible types in assignment (expression has type "bytearray", variable has type "bytes") [assignment]
- aiohttp/http_websocket.py:665:35: error: Argument 2 has incompatible type "bytes"; expected "bytearray" [arg-type]
werkzeug (https://github.com/pallets/werkzeug)
- src/werkzeug/sansio/multipart.py:172: error: Argument 1 to "_parse_headers" of "MultipartDecoder" has incompatible type "bytearray"; expected "bytes" [arg-type]
- src/werkzeug/sansio/multipart.py:211: error: Argument 1 to "_parse_data" of "MultipartDecoder" has incompatible type "bytearray"; expected "bytes" [arg-type]
- src/werkzeug/sansio/multipart.py:218: error: Argument 1 to "_parse_data" of "MultipartDecoder" has incompatible type "bytearray"; expected "bytes" [arg-type]
urllib3 (https://github.com/urllib3/urllib3)
- src/urllib3/util/ssltransport.py:108: error: Argument 1 to "send" of "SSLTransport" has incompatible type "memoryview"; expected "bytes" [arg-type]
- test/test_ssltransport.py:58: error: Non-overlapping equality check (left operand type: "bytearray", right operand type: "str | bytes") [comparison-overlap]
- test/test_ssltransport.py:543: error: Argument 1 to "sendall" of "SSLTransport" has incompatible type "bytearray"; expected "bytes" [arg-type]
streamlit (https://github.com/streamlit/streamlit)
- lib/streamlit/string_util.py: note: In function "is_binary_string":
- lib/streamlit/string_util.py:116:37: error: Argument 2 to "translate" of "bytes" has incompatible type "bytearray"; expected "bytes" [arg-type]
- lib/streamlit/runtime/legacy_caching/hashing.py: note: In member "_to_bytes" of class "_CodeHasher":
- lib/streamlit/runtime/legacy_caching/hashing.py:422:20: error: Incompatible return value type (got "Union[bytes, bytearray]", expected "bytes") [return-value]
- lib/streamlit/runtime/caching/hashing.py: note: In member "_to_bytes" of class "_CacheFuncHasher":
- lib/streamlit/runtime/caching/hashing.py:361:20: error: Incompatible return value type (got "Union[bytes, bytearray]", expected "bytes") [return-value]
pwndbg (https://github.com/pwndbg/pwndbg)
- pwndbg/gdblib/memory.py: note: In function "read":
- pwndbg/gdblib/memory.py:68: error: Incompatible return value type (got "bytes", expected "bytearray") [return-value]
- pwndbg/gdblib/kernel/init.py: note: In function "load_kconfig":
- pwndbg/gdblib/kernel/init.py:93: error: Argument 1 to "Kconfig" has incompatible type "bytearray"; expected "bytes" [arg-type]
- pwndbg/commands/spray.py: note: In function "spray":
- pwndbg/commands/spray.py:71: error: Argument 1 to "unpack" of "Arch" has incompatible type "bytearray"; expected "bytes" [arg-type]
- pwndbg/commands/sigreturn.py: note: In function "sigreturn":
- pwndbg/commands/sigreturn.py:87: error: Argument 1 to "unpack" of "Arch" has incompatible type "bytearray"; expected "bytes" [arg-type]
- pwndbg/commands/probeleak.py: note: In function "probeleak":
- pwndbg/commands/probeleak.py:123: error: Argument 1 to "unpack" of "Arch" has incompatible type "bytearray"; expected "bytes" [arg-type]
- pwndbg/commands/heap.py: note: In function "find_fake_fast":
- pwndbg/commands/heap.py:827: error: Argument 1 to "unpack_size" of "Arch" has incompatible type "bytearray"; expected "bytes" [arg-type]
- pwndbg/commands/heap.py: note: In function "vis_heap_chunks":
- pwndbg/commands/heap.py:1015: error: Argument 1 to "unpack" of "Arch" has incompatible type "bytearray"; expected "bytes" [arg-type]
aiortc (https://github.com/aiortc/aiortc)
- src/aiortc/codecs/vpx.py:352: error: Argument 1 to "_packetize" of "Vp8Encoder" has incompatible type "bytearray"; expected "bytes" [arg-type]
bokeh (https://github.com/bokeh/bokeh)
- src/bokeh/core/serialization.py: note: In member "_decode_bytes" of class "Deserializer":
- src/bokeh/core/serialization.py:618:16: error: Incompatible return value type (got "bytes | memoryview", expected "bytes") [return-value]