Beispiel #1
0
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)
Beispiel #2
0
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
        }
    ))
Beispiel #3
0
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)
Beispiel #4
0
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)
Beispiel #5
0
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!")
Beispiel #7
0
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