{ "info": { "author": "Barry Muldrey", "author_email": "barry@muldrey.net", "bugtrack_url": null, "classifiers": [], "description": "# Waverunner is a symmetrical client/server RPC tool\n### securely advertises and executes arbitrary remote python modules\n\n### server-side code:\ncreate a script (let's call it `batch-script.py`) that looks like this:\n```python\nimport numpy\nimport fancyInstrumentControl\nfrom waverunner import SecureMethod\n\n@SecureMethod\ndef get_measurement(stimulus):\n return fancyInstrumentControl.pass(stimulus)\n```\n\nthen run waverunner:\n\n```bash\n$ python -m waverunner \\\n --srv-path /path/to/batch-script.py \\\n --notify 123.345.543.2\n --password mybestfriendsgirlfriendisamediocresong\n\nfound batch-script.get_measurement\nserving at 142.555.432.1\nsending notifications to 123.345.543.2\n```\n\nwaverunner will now serve 'batch-script.get_measurement()' and advertise to\nany waverunner that might be running at 123.345.543.2\n\n### client-side code:\n\n```python\n\nfrom waverunner import Server\n\nserver = Server(\n password='mybestfriendsgirlfriendisamediocresong',\n user_ips='142.555.432.1')\n\nrequest = (\n 'batch-script.get_measurement',\n np.stack([np.random.randn(100) for i in range(100)]),\n)\n\nresult = server.external_request('http://142.555.432.1', *request)\nprint(result)\n```\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://gitlab.com/bjmuld/waverunner/", "keywords": "scientific experiements analysis data management", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "waverunner", "package_url": "https://pypi.org/project/waverunner/", "platform": "", "project_url": "https://pypi.org/project/waverunner/", "project_urls": { "Bug Tracker": "https://gitlab.com/bjmuld/waverunner/issues", "Documentation": "https://gitlab.com/bjmuld/waverunner", "Homepage": "http://gitlab.com/bjmuld/waverunner/" }, "release_url": "https://pypi.org/project/waverunner/0.2b6/", "requires_dist": [ "netifaces", "numpy", "cloudpickle", "dill", "futures ; python_version == \"2.7\"" ], "requires_python": "", "summary": "Package for sending (hardware) experiment requests across the network and receiving the results", "version": "0.2b6" }, "last_serial": 5165481, "releases": { "0.1b13": [ { "comment_text": "", "digests": { "md5": "4f4e9903320650c65ade7eec40b08113", "sha256": "8ee14c33ff99b2aeadc03ce4a58501d8148b2a72cc330f57d995aac95164bee7" }, "downloads": -1, "filename": "waverunner-0.1b13-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f4e9903320650c65ade7eec40b08113", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15403, "upload_time": "2019-01-03T15:51:11", "url": "https://files.pythonhosted.org/packages/19/13/4973c1a66d4920d44b197150d95d61c3f45b70adcff1ec66e2d64eefdd13/waverunner-0.1b13-py2.py3-none-any.whl" } ], "0.1b3": [ { "comment_text": "", "digests": { "md5": "7dea6e79889f0deaf88d8129cf0a5843", "sha256": "86cb824b94bb4c126ff8f724944615f3056c81101c23b6e785fe1c96147626c8" }, "downloads": -1, "filename": "waverunner-0.1b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7dea6e79889f0deaf88d8129cf0a5843", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12449, "upload_time": "2018-12-18T20:32:03", "url": "https://files.pythonhosted.org/packages/0b/b0/ebcb9082fbe5c0936a76235a16ca4974db232ce967ec278a62aeb976e547/waverunner-0.1b3-py2.py3-none-any.whl" } ], "0.1b4": [ { "comment_text": "", "digests": { "md5": "3f7f01328623f696217b1ba46a7c466c", "sha256": "1067a9711e144e5760ea507ca12aa5d6e9097917d4d33c55e25ada77e933d2aa" }, "downloads": -1, "filename": "waverunner-0.1b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3f7f01328623f696217b1ba46a7c466c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12369, "upload_time": "2018-12-18T20:13:15", "url": "https://files.pythonhosted.org/packages/3f/86/7a5a2f2b2f215ea108771e4284e2c318a74ec278686fdd7ccb005dc7daa2/waverunner-0.1b4-py2.py3-none-any.whl" } ], "0.1b5": [ { "comment_text": "", "digests": { "md5": "1b424fe0da30aaf77055c11c3e188ae9", "sha256": "271f4ec39fd1c6e861a720e37c0424704ca1768243771e1920d028020cdb07fa" }, "downloads": -1, "filename": "waverunner-0.1b5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1b424fe0da30aaf77055c11c3e188ae9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12538, "upload_time": "2018-12-18T21:24:09", "url": "https://files.pythonhosted.org/packages/02/bd/76bc72ba88ee454288feb300dfff2f4d228562f00230cf6d58f3cbf465f7/waverunner-0.1b5-py2.py3-none-any.whl" } ], "0.1b6": [ { "comment_text": "", "digests": { "md5": "d1f60d61d730102b668690b5d5f7d17b", "sha256": "b9adb2618dc58690f81f1235ac6640f956c7947333020bc169f9acd2fe61675d" }, "downloads": -1, "filename": "waverunner-0.1b6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d1f60d61d730102b668690b5d5f7d17b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12254, "upload_time": "2018-12-20T09:43:47", "url": "https://files.pythonhosted.org/packages/17/3f/9fa295e13c6b75603e4f44fbc921765da5448b8f6a0a4f1b5c7051a357c1/waverunner-0.1b6-py2.py3-none-any.whl" } ], "0.1b7": [ { "comment_text": "", "digests": { "md5": "10c5c6618a999f335ede6542c0d7c9ce", "sha256": "a143cedc75df4b5216bb21966956a6c39da54919feca4991f6af6fceafb82bda" }, "downloads": -1, "filename": "waverunner-0.1b7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "10c5c6618a999f335ede6542c0d7c9ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13365, "upload_time": "2018-12-21T22:17:37", "url": "https://files.pythonhosted.org/packages/58/ac/d11448e574a8fbba86c55caa03a5fa0776c3ad58912e015ef01481b82e5f/waverunner-0.1b7-py2.py3-none-any.whl" } ], "0.1b8": [ { "comment_text": "", "digests": { "md5": "a9d8dc93f368f383d0dbae7774800123", "sha256": "0c32dff9a7a37ee9add59723f5cc1b94fc5e27268a2b137b9340919a61b9a612" }, "downloads": -1, "filename": "waverunner-0.1b8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a9d8dc93f368f383d0dbae7774800123", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13446, "upload_time": "2019-01-02T02:59:32", "url": "https://files.pythonhosted.org/packages/a6/2f/972fa7cb88ed9cf6422820bc3cfca2ac1c22232c3a3d4b1416be7cc78cdb/waverunner-0.1b8-py2.py3-none-any.whl" } ], "0.2b0": [ { "comment_text": "", "digests": { "md5": "758d4c74fe36303bd1b1dd8294e0f8fc", "sha256": "807900ef323862aecd4d9668da172741f52cfc2874b805d50e7d686687ffa90d" }, "downloads": -1, "filename": "waverunner-0.2b0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "758d4c74fe36303bd1b1dd8294e0f8fc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16589, "upload_time": "2019-02-02T20:23:36", "url": "https://files.pythonhosted.org/packages/e6/eb/5894b80b59a65659ab22a687021cee56aca87b6c9db856b8838cf9b14310/waverunner-0.2b0-py2.py3-none-any.whl" } ], "0.2b1": [ { "comment_text": "", "digests": { "md5": "ee3cdf3e721b687ad8b402b5da69230e", "sha256": "61256da13e4df04ee1f372c85e73f471c5bc5653f8b58f3bda5a55833394ff72" }, "downloads": -1, "filename": "waverunner-0.2b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ee3cdf3e721b687ad8b402b5da69230e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16616, "upload_time": "2019-02-02T23:34:30", "url": "https://files.pythonhosted.org/packages/f9/7f/8743f839e9615ee8c02309f2231db9729b3d14532c4e6683db77878ca76a/waverunner-0.2b1-py2.py3-none-any.whl" } ], "0.2b2": [ { "comment_text": "", "digests": { "md5": "a65ba9cb538a26529307aa48a97064c2", "sha256": "e11dae154280b947083bbbcd17cc847fbfbd2370c633cdafff559930166cdbea" }, "downloads": -1, "filename": "waverunner-0.2b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a65ba9cb538a26529307aa48a97064c2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16914, "upload_time": "2019-02-04T14:17:21", "url": "https://files.pythonhosted.org/packages/57/78/4d493f2f5d0e77d2f0aa577bb35b4ce64e229072c9152abb8c5b8abc3cca/waverunner-0.2b2-py2.py3-none-any.whl" } ], "0.2b3": [ { "comment_text": "", "digests": { "md5": "c8c6fbce1d3ad51a210202d9106192bf", "sha256": "ad65379edf74444467d5089e444770a946892b43148e31bf13ebc9853dc28fac" }, "downloads": -1, "filename": "waverunner-0.2b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c8c6fbce1d3ad51a210202d9106192bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17297, "upload_time": "2019-02-04T20:55:08", "url": "https://files.pythonhosted.org/packages/4c/7a/6809470bef37957fd1e99aa9eab5cb0ee8943a488ba732f43e674ff44cbc/waverunner-0.2b3-py2.py3-none-any.whl" } ], "0.2b4": [ { "comment_text": "", "digests": { "md5": "1f7beb797485756b9e4b74ef9ad1afd1", "sha256": "491ac7571a7251ad45a3a67fc572f5e64b572e33153814939797a75c052968f9" }, "downloads": -1, "filename": "waverunner-0.2b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1f7beb797485756b9e4b74ef9ad1afd1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17551, "upload_time": "2019-02-14T14:41:43", "url": "https://files.pythonhosted.org/packages/dc/0b/ea5b91720eb140a6c27ec64385efd8e388c060a2a75d61409747d9093ff6/waverunner-0.2b4-py2.py3-none-any.whl" } ], "0.2b5": [ { "comment_text": "", "digests": { "md5": "59bc36132fd614fb5a814e3f9ff92206", "sha256": "ebe48c5d05c3e7c89af3dbe57df1c787d94efbacd7a062559994e5f9148e9591" }, "downloads": -1, "filename": "waverunner-0.2b5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "59bc36132fd614fb5a814e3f9ff92206", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17677, "upload_time": "2019-04-07T18:17:46", "url": "https://files.pythonhosted.org/packages/c5/4e/4c06efb262891c2f4a461e5fa27060b1e8d86a34c1e733d42d12731e6120/waverunner-0.2b5-py2.py3-none-any.whl" } ], "0.2b6": [ { "comment_text": "", "digests": { "md5": "7b71775a39f292fad003bea2903c56ce", "sha256": "412f069258700ea38ddaf3902b97261dfead6fc06d4cb4dd5547f718a51c5da8" }, "downloads": -1, "filename": "waverunner-0.2b6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b71775a39f292fad003bea2903c56ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17688, "upload_time": "2019-04-19T17:00:24", "url": "https://files.pythonhosted.org/packages/98/d4/0bb085a39e1be6e990f5cfe67233ce1ceacb739e97dae6e0fd229f7b8756/waverunner-0.2b6-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7b71775a39f292fad003bea2903c56ce", "sha256": "412f069258700ea38ddaf3902b97261dfead6fc06d4cb4dd5547f718a51c5da8" }, "downloads": -1, "filename": "waverunner-0.2b6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b71775a39f292fad003bea2903c56ce", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17688, "upload_time": "2019-04-19T17:00:24", "url": "https://files.pythonhosted.org/packages/98/d4/0bb085a39e1be6e990f5cfe67233ce1ceacb739e97dae6e0fd229f7b8756/waverunner-0.2b6-py2.py3-none-any.whl" } ] }