Skip to content

Commit

Permalink
Standardize on .encode().
Browse files Browse the repository at this point in the history
We had a mix of .encode() and .encode("utf-8") -- which is the default.
  • Loading branch information
aaugustin committed Jan 20, 2024
1 parent cd4bc79 commit 03ecfa5
Show file tree
Hide file tree
Showing 7 changed files with 69 additions and 73 deletions.
2 changes: 1 addition & 1 deletion experiments/compression/benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def _run(data):
for _ in range(REPEAT):
for item in data:
if isinstance(item, str):
item = item.encode("utf-8")
item = item.encode()
# Taken from PerMessageDeflate.encode
item = encoder.compress(item) + encoder.flush(zlib.Z_SYNC_FLUSH)
if item.endswith(b"\x00\x00\xff\xff"):
Expand Down
6 changes: 3 additions & 3 deletions src/websockets/frames.py
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ def prepare_data(data: Data) -> Tuple[int, bytes]:
"""
if isinstance(data, str):
return OP_TEXT, data.encode("utf-8")
return OP_TEXT, data.encode()
elif isinstance(data, BytesLike):
return OP_BINARY, data
else:
Expand All @@ -387,7 +387,7 @@ def prepare_ctrl(data: Data) -> bytes:
"""
if isinstance(data, str):
return data.encode("utf-8")
return data.encode()
elif isinstance(data, BytesLike):
return bytes(data)
else:
Expand Down Expand Up @@ -456,7 +456,7 @@ def serialize(self) -> bytes:
"""
self.check()
return struct.pack("!H", self.code) + self.reason.encode("utf-8")
return struct.pack("!H", self.code) + self.reason.encode()

def check(self) -> None:
"""
Expand Down
8 changes: 4 additions & 4 deletions src/websockets/sync/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,7 +287,7 @@ def send(self, message: Union[Data, Iterable[Data]]) -> None:
"cannot call send while another thread "
"is already running send"
)
self.protocol.send_text(message.encode("utf-8"))
self.protocol.send_text(message.encode())

elif isinstance(message, BytesLike):
with self.send_context():
Expand Down Expand Up @@ -324,7 +324,7 @@ def send(self, message: Union[Data, Iterable[Data]]) -> None:
)
self.send_in_progress = True
self.protocol.send_text(
chunk.encode("utf-8"),
chunk.encode(),
fin=False,
)
elif isinstance(chunk, BytesLike):
Expand All @@ -349,7 +349,7 @@ def send(self, message: Union[Data, Iterable[Data]]) -> None:
with self.send_context():
assert self.send_in_progress
self.protocol.send_continuation(
chunk.encode("utf-8"),
chunk.encode(),
fin=False,
)
elif isinstance(chunk, BytesLike) and not text:
Expand Down Expand Up @@ -630,7 +630,7 @@ def send_context(
socket::
with self.send_context():
self.protocol.send_text(message.encode("utf-8"))
self.protocol.send_text(message.encode())
When the connection isn't open on entry, when the connection is expected
to close on exit, or when an unexpected error happens, terminating the
Expand Down
26 changes: 13 additions & 13 deletions tests/extensions/test_permessage_deflate.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ def test_no_encode_decode_close_frame(self):
# Data frames are encoded and decoded.

def test_encode_decode_text_frame(self):
frame = Frame(OP_TEXT, "café".encode("utf-8"))
frame = Frame(OP_TEXT, "café".encode())

enc_frame = self.extension.encode(frame)

Expand Down Expand Up @@ -112,9 +112,9 @@ def test_encode_decode_binary_frame(self):
self.assertEqual(dec_frame, frame)

def test_encode_decode_fragmented_text_frame(self):
frame1 = Frame(OP_TEXT, "café".encode("utf-8"), fin=False)
frame2 = Frame(OP_CONT, " & ".encode("utf-8"), fin=False)
frame3 = Frame(OP_CONT, "croissants".encode("utf-8"))
frame1 = Frame(OP_TEXT, "café".encode(), fin=False)
frame2 = Frame(OP_CONT, " & ".encode(), fin=False)
frame3 = Frame(OP_CONT, "croissants".encode())

enc_frame1 = self.extension.encode(frame1)
enc_frame2 = self.extension.encode(frame2)
Expand Down Expand Up @@ -168,7 +168,7 @@ def test_encode_decode_fragmented_binary_frame(self):
self.assertEqual(dec_frame2, frame2)

def test_no_decode_text_frame(self):
frame = Frame(OP_TEXT, "café".encode("utf-8"))
frame = Frame(OP_TEXT, "café".encode())

# Try decoding a frame that wasn't encoded.
self.assertEqual(self.extension.decode(frame), frame)
Expand All @@ -180,9 +180,9 @@ def test_no_decode_binary_frame(self):
self.assertEqual(self.extension.decode(frame), frame)

def test_no_decode_fragmented_text_frame(self):
frame1 = Frame(OP_TEXT, "café".encode("utf-8"), fin=False)
frame2 = Frame(OP_CONT, " & ".encode("utf-8"), fin=False)
frame3 = Frame(OP_CONT, "croissants".encode("utf-8"))
frame1 = Frame(OP_TEXT, "café".encode(), fin=False)
frame2 = Frame(OP_CONT, " & ".encode(), fin=False)
frame3 = Frame(OP_CONT, "croissants".encode())

dec_frame1 = self.extension.decode(frame1)
dec_frame2 = self.extension.decode(frame2)
Expand All @@ -203,7 +203,7 @@ def test_no_decode_fragmented_binary_frame(self):
self.assertEqual(dec_frame2, frame2)

def test_context_takeover(self):
frame = Frame(OP_TEXT, "café".encode("utf-8"))
frame = Frame(OP_TEXT, "café".encode())

enc_frame1 = self.extension.encode(frame)
enc_frame2 = self.extension.encode(frame)
Expand All @@ -215,7 +215,7 @@ def test_remote_no_context_takeover(self):
# No context takeover when decoding messages.
self.extension = PerMessageDeflate(True, False, 15, 15)

frame = Frame(OP_TEXT, "café".encode("utf-8"))
frame = Frame(OP_TEXT, "café".encode())

enc_frame1 = self.extension.encode(frame)
enc_frame2 = self.extension.encode(frame)
Expand All @@ -233,7 +233,7 @@ def test_local_no_context_takeover(self):
# No context takeover when encoding and decoding messages.
self.extension = PerMessageDeflate(True, True, 15, 15)

frame = Frame(OP_TEXT, "café".encode("utf-8"))
frame = Frame(OP_TEXT, "café".encode())

enc_frame1 = self.extension.encode(frame)
enc_frame2 = self.extension.encode(frame)
Expand All @@ -253,7 +253,7 @@ def test_compress_settings(self):
# Configure an extension so that no compression actually occurs.
extension = PerMessageDeflate(False, False, 15, 15, {"level": 0})

frame = Frame(OP_TEXT, "café".encode("utf-8"))
frame = Frame(OP_TEXT, "café".encode())

enc_frame = extension.encode(frame)

Expand All @@ -269,7 +269,7 @@ def test_compress_settings(self):
# Frames aren't decoded beyond max_size.

def test_decompress_max_size(self):
frame = Frame(OP_TEXT, ("a" * 20).encode("utf-8"))
frame = Frame(OP_TEXT, ("a" * 20).encode())

enc_frame = self.extension.encode(frame)

Expand Down
6 changes: 2 additions & 4 deletions tests/legacy/test_framing.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,14 +76,12 @@ def test_binary_masked(self):
)

def test_non_ascii_text(self):
self.round_trip(
b"\x81\x05caf\xc3\xa9", Frame(True, OP_TEXT, "café".encode("utf-8"))
)
self.round_trip(b"\x81\x05caf\xc3\xa9", Frame(True, OP_TEXT, "café".encode()))

def test_non_ascii_text_masked(self):
self.round_trip(
b"\x81\x85\x64\xbe\xee\x7e\x07\xdf\x88\xbd\xcd",
Frame(True, OP_TEXT, "café".encode("utf-8")),
Frame(True, OP_TEXT, "café".encode()),
mask=True,
)

Expand Down

0 comments on commit 03ecfa5

Please sign in to comment.