Files
annotations/Azaion.Inference/remote_command_inf.pyx
T
Oleksandr Bezdieniezhnykh 9a16099194 fix split tile size
rework inference events and handling
todo: add Medias table and reflect recognition status there
2025-09-05 16:50:09 +03:00

44 lines
1.4 KiB
Cython

import msgpack
cdef class RemoteCommand:
def __init__(self, CommandType command_type, bytes data=None, str message=None):
self.command_type = command_type
self.data = data
self.message = message
def __str__(self):
command_type_names = {
3: "OK",
10: "LOGIN",
12: "CHECK_RESOURCE",
15: "LIST_REQUEST",
18: "LIST_FILES",
20: "LOAD",
22: "LOAD_BIG_SMALL",
24: "UPLOAD_BIG_SMALL",
25: "DATA_BYTES",
30: "INFERENCE",
35: "INFERENCE_DATA",
37: "INFERENCE_STATUS",
38: "INFERENCE_DONE",
40: "STOP_INFERENCE",
80: "AI_AVAILABILITY_CHECK",
85: "AI_AVAILABILITY_RESULT",
90: "ERROR",
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"), unpacked.get("Message"))
cdef bytes serialize(self):
return msgpack.packb({
"CommandType": self.command_type,
"Data": self.data,
"Message": self.message
})