Esempio n. 1
0
def test_zmq_bad_type():
    def __bad_generator():

        for _ in range(100):
            yield dict(X=list(range(100)))

    stream = pescador.Streamer(__bad_generator)

    zs = pescador.ZMQStreamer(stream)

    for item in zs:
        pass
Esempio n. 2
0
def test_zmq_align():

    stream = pescador.Streamer(T.finite_generator, 200, size=3, lag=0.001)

    reference = list(stream)

    zmq_stream = pescador.ZMQStreamer(stream)

    if six.PY2:
        with pytest.warns(RuntimeWarning, match='array alignment'):
            query = list(zmq_stream)
    else:
        query = list(zmq_stream)

    assert len(reference) == len(query)

    for b1, b2 in zip(reference, query):
        T._eq_batch(b1, b2)
        if six.PY2:
            continue
        for key in b2:
            assert b2[key].flags['ALIGNED']
Esempio n. 3
0
max_iter = 1e2

# Construct a streamer
timed_sampling(data_gen, max_iter, 'Single-threaded')
# Single-threaded :: Average time per iteration: 0.024 sec

##############################################
# Basic ZMQ Usage
##############################################
# Here is a trivial ZMQStreamer example, using it directly on top of a single
# Streamer. We leave it to your imagination to decide what you would actually
# do with the batches you receive here.

# Wrap the streamer in a ZMQ streamer
zstream = pescador.ZMQStreamer(data_gen)
timed_sampling(zstream, max_iter, 'ZMQ')
# ZMQ :: Average time per iteration: 0.012 sec

##############################################
# ZMQ with Map Functions
##############################################
# You will also likely want to buffer samples for building mini-batches. Here,
# we demonstrate best practices for using map functions in a stream pipeline.

buffer_size = 16

# Get batches from the stream as you would normally.
batches = pescador.Streamer(pescador.buffer_stream, data_gen, buffer_size)
timed_sampling(batches, max_iter, 'Single-threaded Batches')
# Single-threaded Batches :: Average time per iteration: 0.392 sec