added better logging to python

add day / winter / night switcher
This commit is contained in:
Alex Bezdieniezhnykh
2025-02-17 18:41:18 +02:00
parent 2ecbc9bfd4
commit c314268d1e
14 changed files with 204 additions and 103 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
import json
import os
import time
from http import HTTPStatus
from uuid import UUID
import jwt
@@ -97,7 +98,7 @@ cdef class ApiClient:
stream = BytesIO(response.raw.read())
data = Security.decrypt_to(stream, key)
print(f'loaded file: {filename}, {len(data)} bytes')
constants.log(<str>f'Downloaded file: {filename}, {len(data)} bytes')
return data
cdef load_ai_model(self):
+4 -1
View File
@@ -9,4 +9,7 @@ cdef str QUEUE_CONFIG_FILENAME # queue config filename to load from api
cdef str AI_MODEL_FILE # AI Model file
cdef bytes DONE_SIGNAL
cdef int MODEL_BATCH_SIZE
cdef int MODEL_BATCH_SIZE
cdef log(str log_message, bytes client_id=*)
+7
View File
@@ -1,3 +1,5 @@
import time
cdef str CONFIG_FILE = "config.yaml" # Port for the zmq
cdef int QUEUE_MAXSIZE = 1000 # Maximum size of the command queue
@@ -10,3 +12,8 @@ cdef str AI_MODEL_FILE = "azaion.onnx"
cdef bytes DONE_SIGNAL = b"DONE"
cdef int MODEL_BATCH_SIZE = 4
cdef log(str log_message, bytes client_id=None):
local_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
client_str = '' if client_id is None else f' {client_id}'
print(f'[{local_time}{client_str}]: {log_message}')
-1
View File
@@ -29,7 +29,6 @@ cdef class CommandProcessor:
self.inference = Inference(self.api_client, self.on_annotation)
def start(self):
print('Started!')
while self.running:
try:
command = self.inference_queue.get(timeout=0.5)
+2 -2
View File
@@ -13,8 +13,8 @@ cdef class RemoteCommand:
40: "STOP_INFERENCE",
100: "EXIT"
}
data_str = f'. Data: {len(self.data)} bytes' if self.data else ''
return f'{command_type_names[self.command_type]}: {data_str}'
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):
+5 -3
View File
@@ -14,7 +14,8 @@ cdef class RemoteCommandHandler:
self._router.setsockopt(zmq.LINGER, 0)
with open(<str>constants.CONFIG_FILE, "r") as f:
config = yaml.safe_load(f)
self._router.bind(f'tcp://*:{config["zmq_port"]}')
port = config["zmq_port"]
self._router.bind(f'tcp://*:{port}')
self._dealer = self._context.socket(zmq.DEALER)
self._dealer.setsockopt(zmq.LINGER, 0)
@@ -30,6 +31,7 @@ cdef class RemoteCommandHandler:
for _ in range(4): # 4 worker threads
worker = Thread(target=self._worker_loop, daemon=True)
self._workers.append(worker)
print(f'Listening to commands on port {port}...')
cdef start(self):
self._proxy_thread.start()
@@ -60,7 +62,7 @@ cdef class RemoteCommandHandler:
client_id, message = worker_socket.recv_multipart()
cmd = RemoteCommand.from_msgpack(<bytes> message)
cmd.client_id = client_id
print(f'Received [{cmd}] from the client {client_id}')
constants.log(<str>f'{cmd}', client_id)
self._on_command(cmd)
except Exception as e:
if not self._shutdown_event.is_set():
@@ -74,7 +76,7 @@ cdef class RemoteCommandHandler:
with self._context.socket(zmq.DEALER) as socket:
socket.connect("inproc://backend")
socket.send_multipart([client_id, data])
print(f'{len(data)} bytes was sent to client {client_id}')
constants.log(<str>f'Sent {len(data)} bytes.', client_id)
cdef stop(self):
self._shutdown_event.set()