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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Close
Hashes for waverunner-0.2b6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 412f069258700ea38ddaf3902b97261dfead6fc06d4cb4dd5547f718a51c5da8 |
|
MD5 | 7b71775a39f292fad003bea2903c56ce |
|
BLAKE2b-256 | 98d40bb085a39e1be6e990f5cfe67233ce1ceacb739e97dae6e0fd229f7b8756 |