Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Package for sending (hardware) experiment requests across the network and receiving the results

Project description

Waverunner is a symmetrical client/server RPC tool

securely advertises and executes arbitrary remote python modules

server-side code:

create a script (let's call it batch-script.py) that looks like this:

import numpy
import fancyInstrumentControl
from waverunner import SecureMethod

@SecureMethod
def get_measurement(stimulus):
    return fancyInstrumentControl.pass(stimulus)

then run waverunner:

$ python -m waverunner \
     --srv-path /path/to/batch-script.py \
     --notify 123.345.543.2
     --password mybestfriendsgirlfriendisamediocresong

found batch-script.get_measurement
serving at 142.555.432.1
sending notifications to 123.345.543.2

waverunner will now serve 'batch-script.get_measurement()' and advertise to any waverunner that might be running at 123.345.543.2

client-side code:

from waverunner import Server

server = Server(
            password='mybestfriendsgirlfriendisamediocresong',
            user_ips='142.555.432.1')

request = (
    'batch-script.get_measurement',
    np.stack([np.random.randn(100) for i in range(100)]),
)

result = server.external_request('http://142.555.432.1', *request)
print(result)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for waverunner, version 0.2b6
Filename, size File type Python version Upload date Hashes
Filename, size waverunner-0.2b6-py2.py3-none-any.whl (17.7 kB) File type Wheel Python version py2.py3 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page