mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 22:16:30 +00:00
29 lines
856 B
Cython
29 lines
856 B
Cython
import msgpack
|
|
|
|
cdef class RemoteCommand:
|
|
def __init__(self, CommandType command_type, bytes data):
|
|
self.command_type = command_type
|
|
self.data = data
|
|
|
|
def __str__(self):
|
|
command_type_names = {
|
|
10: "LOGIN",
|
|
20: "LOAD",
|
|
30: "INFERENCE",
|
|
40: "STOP_INFERENCE",
|
|
100: "EXIT"
|
|
}
|
|
data_str = f'{len(self.data)} bytes' if self.data else ''
|
|
return f'{command_type_names[self.command_type]} ({data_str})'
|
|
|
|
@staticmethod
|
|
cdef from_msgpack(bytes data):
|
|
unpacked = msgpack.unpackb(data, strict_map_key=False)
|
|
return RemoteCommand(unpacked.get("CommandType"), unpacked.get("Data"))
|
|
|
|
cdef bytes serialize(self):
|
|
return msgpack.packb({
|
|
"CommandType": self.command_type,
|
|
"Data": self.data
|
|
})
|