{ "info": { "author": "Geoffrey Lentner", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3.7" ], "description": "Distributed Executor\n====================\n\n[![GitHub License](http://img.shields.io/badge/license-Apache-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0)\n[![Python Version](http://img.shields.io/badge/python-3.7-orange.svg?style=flat)](https://docs.python.org/3.7)\n\nA cross-platform reference implementation for processing shell commands over\na distributed, asynchronous queue. `dist_exe` is a single producer\n(server) many consumer (client) system. It functions similar to *GNU Parallel*\nbut scales out to many servers and even across operating systems.\n\nThis tool uses only standard library methods so there are no dependencies.\nIt has been tested on Linux, macOS, and Windows 10 in Python 3.7 environments.\nThe server and clients don't even need to be using the same platform.\n\n\nInstallation\n------------\n\n```\npip install dist_exe [--upgrade] [--user]\n```\n\n\nUsage\n-----\n\nThe _server_ role reads from standard input and publishes to a queue. If you don't \nhave something actively creating work a good approach is to create a _MANIFEST_ file\nand use `tail -f` to wait for work to arrive.\n\n```\nuser@host-01: ~ $ touch MANIFEST\nuser@host-01: ~ $ tail -f MANIFEST | dist_exe server -H 0.0.0.0 -p 5050 -k SECRET\n```\n\nThe _client_ role connects to the remote queue and pulls items off, executing them using the local shell.\nYou can specify a template for the command line invocation, otherwise the items are take as being the entire\ninvocation.\n\n```\nuser@host-02: ~ $ dist_exe client -H host-01 -p 5050 -k SECRET -t 'echo {}'\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/glentner/dist_exe", "keywords": "distributed asynchronous queue", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "dist-exe", "package_url": "https://pypi.org/project/dist-exe/", "platform": "", "project_url": "https://pypi.org/project/dist-exe/", "project_urls": { "Homepage": "https://github.com/glentner/dist_exe" }, "release_url": "https://pypi.org/project/dist-exe/0.0.6/", "requires_dist": null, "requires_python": "", "summary": "Distributed execution utility.", "version": "0.0.6" }, "last_serial": 5797784, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "96987cccf0446f37d402c659bb85d427", "sha256": "4e7253b6d42a1b9f94f98c16a2e68d29672f1612ae90b0129353307482211d2f" }, "downloads": -1, "filename": "dist_exe-0.0.3.tar.gz", "has_sig": false, "md5_digest": "96987cccf0446f37d402c659bb85d427", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5261, "upload_time": "2019-08-30T18:50:19", "url": "https://files.pythonhosted.org/packages/92/ea/c9e117224686624920decce714620f0b5e86baf33be1e772046bfae1ea26/dist_exe-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "eda9477a6f58d86266d4b7c3e57813e0", "sha256": "eca60ad88aca4ef1db38b5d959b75380997f5926f9963bdc34f20fa801bde03a" }, "downloads": -1, "filename": "dist_exe-0.0.4.tar.gz", "has_sig": false, "md5_digest": "eda9477a6f58d86266d4b7c3e57813e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5256, "upload_time": "2019-08-30T19:01:46", "url": "https://files.pythonhosted.org/packages/18/2d/0989e57899e424f5c0e909859697e1372dfc242da5c8aaf24f0924569948/dist_exe-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "6a9830c645793a21773e25efc6c7b459", "sha256": "52a8499a96806e94c461946e6492b85c6c9966310cd2a88266e105558d04817f" }, "downloads": -1, "filename": "dist_exe-0.0.5.tar.gz", "has_sig": false, "md5_digest": "6a9830c645793a21773e25efc6c7b459", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5247, "upload_time": "2019-09-07T02:44:50", "url": "https://files.pythonhosted.org/packages/3f/2b/8c92d2127453a80dd1a32c7996d00c9d23ccccb572501e9253808fe7aadb/dist_exe-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "b7f46db5ee58ee4e4b529fd528471387", "sha256": "9c12d43c89a60c359ccc3d8b3851cb302242d01d638fa32d64d15333bf8e3558" }, "downloads": -1, "filename": "dist_exe-0.0.6.tar.gz", "has_sig": false, "md5_digest": "b7f46db5ee58ee4e4b529fd528471387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5255, "upload_time": "2019-09-07T23:44:15", "url": "https://files.pythonhosted.org/packages/ca/d3/c155aacb02eb4e4d3a174487a58963e6eaedb06ae085c5d0d92ad0d62747/dist_exe-0.0.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b7f46db5ee58ee4e4b529fd528471387", "sha256": "9c12d43c89a60c359ccc3d8b3851cb302242d01d638fa32d64d15333bf8e3558" }, "downloads": -1, "filename": "dist_exe-0.0.6.tar.gz", "has_sig": false, "md5_digest": "b7f46db5ee58ee4e4b529fd528471387", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5255, "upload_time": "2019-09-07T23:44:15", "url": "https://files.pythonhosted.org/packages/ca/d3/c155aacb02eb4e4d3a174487a58963e6eaedb06ae085c5d0d92ad0d62747/dist_exe-0.0.6.tar.gz" } ] }