mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 21:56:31 +00:00
9a16099194
rework inference events and handling todo: add Medias table and reflect recognition status there
44 lines
1.4 KiB
Cython
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
|
|
})
|