summaryrefslogtreecommitdiffstats
path: root/bitbake/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib')
-rw-r--r--bitbake/lib/bb/asyncrpc/client.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/bitbake/lib/bb/asyncrpc/client.py b/bitbake/lib/bb/asyncrpc/client.py
index a350b4fb12..65f3f8964d 100644
--- a/bitbake/lib/bb/asyncrpc/client.py
+++ b/bitbake/lib/bb/asyncrpc/client.py
@@ -24,6 +24,9 @@ ADDR_TYPE_UNIX = 0
24ADDR_TYPE_TCP = 1 24ADDR_TYPE_TCP = 1
25ADDR_TYPE_WS = 2 25ADDR_TYPE_WS = 2
26 26
27WEBSOCKETS_MIN_VERSION = (9, 1)
28
29
27def parse_address(addr): 30def parse_address(addr):
28 if addr.startswith(UNIX_PREFIX): 31 if addr.startswith(UNIX_PREFIX):
29 return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],)) 32 return (ADDR_TYPE_UNIX, (addr[len(UNIX_PREFIX) :],))
@@ -39,6 +42,7 @@ def parse_address(addr):
39 42
40 return (ADDR_TYPE_TCP, (host, int(port))) 43 return (ADDR_TYPE_TCP, (host, int(port)))
41 44
45
42class AsyncClient(object): 46class AsyncClient(object):
43 def __init__( 47 def __init__(
44 self, 48 self,
@@ -86,6 +90,24 @@ class AsyncClient(object):
86 async def connect_websocket(self, uri): 90 async def connect_websocket(self, uri):
87 import websockets 91 import websockets
88 92
93 try:
94 version = tuple(
95 int(v)
96 for v in websockets.__version__.split(".")[
97 0 : len(WEBSOCKETS_MIN_VERSION)
98 ]
99 )
100 except ValueError:
101 raise ImportError(
102 f"Unable to parse websockets version '{websockets.__version__}'"
103 )
104
105 if version < WEBSOCKETS_MIN_VERSION:
106 min_ver_str = ".".join(str(v) for v in WEBSOCKETS_MIN_VERSION)
107 raise ImportError(
108 f"Websockets version {websockets.__version__} is less than minimum required version {min_ver_str}"
109 )
110
89 async def connect_sock(): 111 async def connect_sock():
90 websocket = await websockets.connect(uri, ping_interval=None) 112 websocket = await websockets.connect(uri, ping_interval=None)
91 return WebsocketConnection(websocket, self.timeout) 113 return WebsocketConnection(websocket, self.timeout)