def send_array(socket: zmq.Socket, data: np.ndarray, **kw) -> None: """ Send a ndarray. """ md = {'shape': data.shape, 'dtype': str(data.dtype)} socket.send_json(md, zmq.SNDMORE) socket.send(data, **kw)
def udpate_progress(progress_sock:zmq.Socket, step:str, global_progress:float,step_detail:str, step_progress:float): progress_sock.send_json(json.dumps( { "step":step, "global_progress":global_progress, "step_detail":step_detail, "step_progress":step_progress } ))
def send_frame(socket: zmq.Socket, fm: Frame, flags: int = 0, **kw) -> None: """ Send a `Frame` object over a zmq socket. """ data = fm.data md = { 'shape': data.shape, 'dtype': str(data.dtype), 'index': fm.index, 'time': fm.time } socket.send_json(md, flags | zmq.SNDMORE) socket.send(data, **kw)
def send_array(socket: zmq.Socket, array: np.array, flags: int = 0, copy: bool = True, track: bool = False): """ Send a numpy array with metadata, type and shape """ dictionary = dict( dtype=str(array.dtype), shape=array.shape, ) socket.send_json(dictionary, flags | zmq.SNDMORE) return socket.send(array, flags, copy=copy, track=track)
def send_array( socket: zmq.Socket, data: np.ndarray, flags: int = 0, copy: bool = True, track: bool = False, ) -> None: """ Send a ndarray. """ md = {'shape': data.shape, 'dtype': str(data.dtype)} socket.send_json(md, flags | zmq.SNDMORE) socket.send(data, flags, copy, track)
def zmq_export(sock: zmq.Socket, topic: str, data, datatype: str = "pyobj"): """ Author: Alexander Heilmeier & Tim Stahl Description: Sends data via ZMQ. Inputs: sock: ZMQ socket (see below how to create it) topic: ZMQ topic to use data: data to send datatype: string that indicates if it should be sent as Python object (pyobj), json (json) or string (str) Hint: To send an object as string it must be converted to a string at first. Conversion of Python objects to json objects is handled by PyZMQ and therefore must not be done by hand if sending a json. How to create a ZMQ socket to export data? import zmq zmq_context = zmq.Context() sock = zmq_context.socket(zmq.PUB) sock.bind("tcp://*:%s" % port) """ # ------------------------------------------------------------------------------------------------------------------ # FUNCTION BODY ---------------------------------------------------------------------------------------------------- # ------------------------------------------------------------------------------------------------------------------ sock.send_string(topic, zmq.SNDMORE) if datatype == "pyobj": sock.send_pyobj(data) elif datatype == "json": sock.send_json(data) elif datatype == "str": sock.send_string(data) else: raise RuntimeError("Specified datatype is not supported!")
def _send_message(socket: Socket, message: Request) -> Response: """Send an IPC message with data to a database interface, return the repsonse.""" socket.send_json(message) response: Response = socket.recv_json() validate(instance=response, schema=response_schema) return response