mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-09-26 12:20:25 +00:00
python3-txws: drop the six dependency
Patch txWS to use bytes literals, str and bytes instead of six.b and the six type aliases, and remove the six.PY2 ord() fixups since indexing a bytes object already yields an int. Built for intel-corei7-64. AI-Generated: Uses Claude Code (Claude Opus 5) Signed-off-by: Markus Volk <f_l_k@t-online.de> Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
This commit is contained in:
+191
@@ -0,0 +1,191 @@
|
||||
From 9f33d0d87503cd6215e92b204f7d89d7caac82c2 Mon Sep 17 00:00:00 2001
|
||||
From: Markus Volk <f_l_k@t-online.de>
|
||||
Date: Mon, 21 Sep 2026 13:25:17 +0200
|
||||
Subject: [PATCH] drop the six dependency
|
||||
|
||||
six is a Python 2 compatibility shim and txWS does not need it on
|
||||
Python 3: six.b is a bytes literal or a latin-1 encode, text_type,
|
||||
binary_type and string_types are str and bytes, and indexing a bytes
|
||||
object already yields an int so the six.PY2 ord() fixups can go.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
AI-Generated: Uses Claude Code (Claude Opus 5)
|
||||
---
|
||||
setup.py | 2 +-
|
||||
txws.py | 40 ++++++++++++++++------------------------
|
||||
2 files changed, 17 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index e4b3372..1564f1f 100755
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -5,7 +5,7 @@ from setuptools import setup
|
||||
setup(
|
||||
name="txWS",
|
||||
py_modules=["txws"],
|
||||
- setup_requires=["vcversioner", "six"],
|
||||
+ setup_requires=["vcversioner"],
|
||||
vcversioner={},
|
||||
author="Corbin Simpson",
|
||||
author_email="simpsoco@osuosl.org",
|
||||
diff --git a/txws.py b/txws.py
|
||||
index 7de92a4..1da7cba 100644
|
||||
--- a/txws.py
|
||||
+++ b/txws.py
|
||||
@@ -27,8 +27,6 @@ from __future__ import division
|
||||
|
||||
__version__ = "0.7.1"
|
||||
|
||||
-import six
|
||||
-
|
||||
import array
|
||||
|
||||
from base64 import b64encode, b64decode
|
||||
@@ -139,7 +137,7 @@ def complete_hybi00(headers, challenge):
|
||||
first = int("".join(i for i in key1 if i in digits)) // key1.count(" ")
|
||||
second = int("".join(i for i in key2 if i in digits)) // key2.count(" ")
|
||||
|
||||
- nonce = pack(">II8s", first, second, six.b(challenge))
|
||||
+ nonce = pack(">II8s", first, second, challenge.encode("latin-1"))
|
||||
|
||||
return md5(nonce).digest()
|
||||
|
||||
@@ -169,10 +167,10 @@ def make_hybi00_frame(buf):
|
||||
and valid text without any 0xff bytes.
|
||||
"""
|
||||
|
||||
- if isinstance(buf, six.text_type):
|
||||
+ if isinstance(buf, str):
|
||||
buf = buf.encode('utf-8')
|
||||
|
||||
- return six.b("\x00") + buf + six.b("\xff")
|
||||
+ return b"\x00" + buf + b"\xff"
|
||||
|
||||
def parse_hybi00_frames(buf):
|
||||
"""
|
||||
@@ -182,12 +180,12 @@ def parse_hybi00_frames(buf):
|
||||
and will actively ignore it.
|
||||
"""
|
||||
|
||||
- start = buf.find(six.b("\x00"))
|
||||
+ start = buf.find(b"\x00")
|
||||
tail = 0
|
||||
frames = []
|
||||
|
||||
while start != -1:
|
||||
- end = buf.find(six.b("\xff"), start + 1)
|
||||
+ end = buf.find(b"\xff", start + 1)
|
||||
if end == -1:
|
||||
# Incomplete frame, try again later.
|
||||
break
|
||||
@@ -196,7 +194,7 @@ def parse_hybi00_frames(buf):
|
||||
frame = buf[start + 1:end]
|
||||
frames.append((NORMAL, frame))
|
||||
tail = end + 1
|
||||
- start = buf.find(six.b("\x00"), end + 1)
|
||||
+ start = buf.find(b"\x00", end + 1)
|
||||
|
||||
# Adjust the buffer and return.
|
||||
buf = buf[tail:]
|
||||
@@ -231,12 +229,12 @@ def make_hybi07_frame(buf, opcode=0x1):
|
||||
else:
|
||||
length = chr(len(buf))
|
||||
|
||||
- if isinstance(buf, six.text_type):
|
||||
+ if isinstance(buf, str):
|
||||
buf = buf.encode('utf-8')
|
||||
|
||||
# Always make a normal packet.
|
||||
header = chr(0x80 | opcode)
|
||||
- return six.b(header + length) + buf
|
||||
+ return (header + length).encode("latin-1") + buf
|
||||
|
||||
def make_hybi07_frame_dwim(buf):
|
||||
"""
|
||||
@@ -244,9 +242,9 @@ def make_hybi07_frame_dwim(buf):
|
||||
"""
|
||||
|
||||
# TODO: eliminate magic numbers.
|
||||
- if isinstance(buf, six.binary_type):
|
||||
+ if isinstance(buf, bytes):
|
||||
return make_hybi07_frame(buf, opcode=0x2)
|
||||
- elif isinstance(buf, six.text_type):
|
||||
+ elif isinstance(buf, str):
|
||||
return make_hybi07_frame(buf.encode("utf-8"), opcode=0x1)
|
||||
else:
|
||||
raise TypeError("In binary support mode, frame data must be either str or unicode")
|
||||
@@ -268,9 +266,6 @@ def parse_hybi07_frames(buf):
|
||||
# about, and an opcode which nobody cares about.
|
||||
header = buf[start]
|
||||
|
||||
- if six.PY2:
|
||||
- header = ord(header)
|
||||
-
|
||||
if header & 0x70:
|
||||
# At least one of the reserved flags is set. Pork chop sandwiches!
|
||||
raise WSException("Reserved flag in HyBi-07 frame (%d)" % header)
|
||||
@@ -289,9 +284,6 @@ def parse_hybi07_frames(buf):
|
||||
# extra length.
|
||||
length = buf[start + 1]
|
||||
|
||||
- if six.PY2:
|
||||
- length = ord(length)
|
||||
-
|
||||
masked = length & 0x80
|
||||
length &= 0x7f
|
||||
|
||||
@@ -342,7 +334,7 @@ def parse_hybi07_frames(buf):
|
||||
data = unpack(">H", data[:2])[0], data[2:]
|
||||
else:
|
||||
# No reason given; use generic data.
|
||||
- data = 1000, six.b("No reason given")
|
||||
+ data = 1000, b"No reason given"
|
||||
|
||||
frames.append((opcode, data))
|
||||
start += offset + length
|
||||
@@ -355,7 +347,7 @@ class WebSocketProtocol(ProtocolWrapper):
|
||||
layer.
|
||||
"""
|
||||
|
||||
- buf = six.b("")
|
||||
+ buf = b""
|
||||
codec = None
|
||||
location = "/"
|
||||
host = "example.com"
|
||||
@@ -385,7 +377,7 @@ class WebSocketProtocol(ProtocolWrapper):
|
||||
return ISSLTransport(self.transport, None) is not None
|
||||
|
||||
def writeEncoded(self, data):
|
||||
- if isinstance(data, six.text_type):
|
||||
+ if isinstance(data, str):
|
||||
data = data.encode('utf-8')
|
||||
self.transport.write(data)
|
||||
|
||||
@@ -528,7 +520,7 @@ class WebSocketProtocol(ProtocolWrapper):
|
||||
elif "Sec-WebSocket-Protocol" in self.headers:
|
||||
protocols = self.headers["Sec-WebSocket-Protocol"]
|
||||
|
||||
- if isinstance(protocols, six.string_types):
|
||||
+ if isinstance(protocols, str):
|
||||
protocols = [p.strip() for p in protocols.split(',')]
|
||||
|
||||
for protocol in protocols:
|
||||
@@ -587,7 +579,7 @@ class WebSocketProtocol(ProtocolWrapper):
|
||||
# These lines look like:
|
||||
# GET /some/path/to/a/websocket/resource HTTP/1.1
|
||||
if self.state == REQUEST:
|
||||
- separator = six.b("\r\n")
|
||||
+ separator = b"\r\n"
|
||||
if separator in self.buf:
|
||||
request, chaff, self.buf = self.buf.partition(separator)
|
||||
request = request.decode('utf-8')
|
||||
@@ -601,7 +593,7 @@ class WebSocketProtocol(ProtocolWrapper):
|
||||
|
||||
elif self.state == NEGOTIATING:
|
||||
# Check to see if we've got a complete set of headers yet.
|
||||
- separator = six.b("\r\n\r\n")
|
||||
+ separator = b"\r\n\r\n"
|
||||
if separator in self.buf:
|
||||
head, chaff, self.buf = self.buf.partition(separator)
|
||||
head = head.decode('utf-8')
|
||||
@@ -4,10 +4,9 @@ HOMEPAGE = "https://github.com/MostAwesomeDude/txWS"
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8"
|
||||
|
||||
DEPENDS = "python3-twisted python3-six python3-vcversioner python3-six-native python3-vcversioner-native"
|
||||
DEPENDS = "python3-twisted python3-vcversioner python3-vcversioner-native"
|
||||
|
||||
RDEPENDS:${PN} += " \
|
||||
python3-six \
|
||||
python3-twisted \
|
||||
"
|
||||
|
||||
@@ -15,4 +14,5 @@ inherit setuptools3 pypi
|
||||
|
||||
PYPI_PACKAGE = "txWS"
|
||||
|
||||
SRC_URI += "file://0001-drop-the-six-dependency.patch"
|
||||
SRC_URI[sha256sum] = "cb93086095d04a5d70f53a75053f7df478ff37e972c3637fb55ca4a9e6b94679"
|
||||
|
||||
Reference in New Issue
Block a user