'Args:
ds (DataFlow): input DataFlow.
nr_proc (int): number of processes to use.
hwm (int): the zmq "high-water mark" for both sender and receiver.'

def __init__(self, ds, nr_proc=1, hwm=50):

    assert (os.name != 'nt'), "PrefetchDataZMQ    doesn't    support    windows!    Consider    PrefetchData    instead."
    super(PrefetchDataZMQ, self).__init__(ds)
    try:
        self._size = ds.size()
    except NotImplementedError:
        self._size = (-1)
    self.nr_proc = nr_proc
    self._hwm = hwm
    self._guard = DataFlowReentrantGuard()
    self._setup_done = False
