f7f56d4285
This commit adds the bytes methods to bytearray, matching CPython. The existing implementations of these methods for str/bytes are reused for bytearray with minor updates to match CPython return types. For details on the CPython behaviour see https://docs.python.org/3/library/stdtypes.html#bytes-and-bytearray-operations The work to merge locals tables for str/bytes/bytearray/array was done by @jimmo. Because of this merging of locals the change in code size for this commit is mostly negative: bare-arm: +0 +0.000% minimal x86: +29 +0.018% unix x64: -792 -0.128% standard[incl -448(data)] unix nanbox: -436 -0.078% nanbox[incl -448(data)] stm32: -40 -0.010% PYBV10 cc3200: -32 -0.017% esp8266: -28 -0.004% GENERIC esp32: -72 -0.005% GENERIC[incl -200(data)] mimxrt: -40 -0.011% TEENSY40 renesas-ra: -40 -0.006% RA6M2_EK nrf: -16 -0.009% pca10040 rp2: -64 -0.013% PICO samd: +148 +0.105% ADAFRUIT_ITSYBITSY_M4_EXPRESS
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
# test bytearray with its re-use of byte functions
|
|
|
|
print(bytearray(b"hello world").find(b"ll"))
|
|
print(bytearray(b"hello\x00world").rfind(b"l"))
|
|
|
|
print(bytearray(b"abc efg ").strip(b"g a"))
|
|
print(bytearray(b" spacious ").lstrip())
|
|
print(bytearray(b"www.example.com").lstrip(b"cmowz."))
|
|
print(bytearray(b" spacious ").rstrip())
|
|
print(bytearray(b"mississippi").rstrip(b"ipz"))
|
|
|
|
print(bytearray(b"abc").split(b"a"))
|
|
print(bytearray(b"abcabc").rsplit(b"bc"))
|
|
|
|
print(bytearray(b"asdfasdf").replace(b"a", b"b"))
|
|
|
|
print("00\x0000".index("0", 0))
|
|
print("00\x0000".index("0", 3))
|
|
print("00\x0000".rindex("0", 0))
|
|
print("00\x0000".rindex("0", 3))
|
|
|
|
print(bytearray(b"foobar").endswith(b"bar"))
|
|
print(bytearray(b"1foo").startswith(b"foo", 1))
|
|
|
|
print(bytearray(b" T E \x00 S T").lower())
|
|
print(bytearray(b" te \x00 st").upper())
|
|
|
|
print(bytearray(b" \t\n\r\v\f").isspace())
|
|
print(bytearray(b"this ").isalpha())
|
|
print(bytearray(b"0123456789").isdigit())
|
|
print(bytearray(b"AB").isupper())
|
|
print(bytearray(b"cheese-cake").islower())
|
|
|
|
print(bytearray(b",").join((bytearray(b"abc"), bytearray(b"def"))))
|
|
print(type(bytearray(b",").join((b"a", b"b", b"c"))))
|