{ "info": { "author": "speezepearson", "author_email": "speeze.pearson+1097@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Programming Language :: Python :: 3.7" ], "description": "Like `xargs`, but accepts arguments from arbitrary processes, and executes eagerly as long as there are arguments available.\n\nThat is to say, `xargsd [...] -- foobar`, when it receives arguments `a` and `b`, will execute `foobar a b`. If arguments `c` through `f` arrive while `foobar a b` is executing, then `foobar c d e f` will get run as soon as the first invocation finishes.\n\n## Examples\n* A toy example, demonstrating the very basic functionality:\n\n ```bash\n $ python -m xargsd --socket-file temp.sock -vvv -- echo &\n [1] 14917\n $ submit() { python -m xargsd.client --socket-file temp.sock -- \"$@\"; }\n $ submit a\n INFO:root:executing ['echo', 'a']\n a\n $ submit b c d\n INFO:root:executing ['echo', 'b', 'c', 'd']\n b c d\n ```\n\n (Note that the `INFO:` lines and the following ones are printed by `xargsd`, not the client.)\n\n* A slightly-less-toy example, which demonstrates how commands are batched up while a previous command is executing:\n\n ```bash\n $ echo 'date; sleep \"$@\"' > date-and-sleep.sh\n $ python -m xargsd --socket-file temp.sock -vvv -- bash date-and-sleep.sh &\n [4] 15714\n $ submit() { echo \"submitting $@\"; python -m xargsd.client --socket-file temp.sock -- \"$@\"; }\n $ submit 1; sleep 0.1; submit 0.99; sleep 0.1; submit 1.01; sleep 3\n submitting 1\n INFO:root:executing ['bash', 'date-and-sleep.sh', '1']\n Sun May 12 09:53:13 PDT 2019\n submitting 0.99\n submitting 1.01\n DEBUG:root:finished executing ['bash', 'date-and-sleep.sh', '1']: status 0\n INFO:root:executing ['bash', 'date-and-sleep.sh', '0.99', '1.01']\n Sun May 12 09:53:14 PDT 2019\n DEBUG:root:finished executing ['bash', 'date-and-sleep.sh', '0.99', '1.01']: status 0\n ```\n\n* A completely serious example, using `watchman` to run `xargsd.client` whenever a file (whose name matches some pattern) changes:\n\n ```bash\n $ watchman watch .\n $ watchman -- trigger . pytest -p '.*\\.py$' -X -p '(^|.*/)\\.' -- bash -c 'python -m xargsd.client --socket-file .xargsd-pytest.sock -- .'\n $ python -m xargsd --unique --socket-file .xargsd-pytest.sock -vvv -- pytest --color=yes\n ```\n\n Then save a `.py` file and watch the daemon execute `pytest .`\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": "https://github.com/speezepearson/xargsd", "keywords": "xargs daemon", "license": "", "maintainer": "", "maintainer_email": "", "name": "xargsd", "package_url": "https://pypi.org/project/xargsd/", "platform": "", "project_url": "https://pypi.org/project/xargsd/", "project_urls": { "Homepage": "https://github.com/speezepearson/xargsd" }, "release_url": "https://pypi.org/project/xargsd/0.1.6/", "requires_dist": null, "requires_python": "", "summary": "xargs-like daemon accepting input from arbitrary processes", "version": "0.1.6" }, "last_serial": 5833814, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "89dce6ddc06bdfb8f6166cc4a590f31b", "sha256": "4f78b5db5c428e67cb00b227df69af1f13c08977f3805822fb2eef9af5dfc032" }, "downloads": -1, "filename": "xargsd-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89dce6ddc06bdfb8f6166cc4a590f31b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2277, "upload_time": "2019-07-22T01:09:20", "url": "https://files.pythonhosted.org/packages/79/ae/2c4e42ba510287832d12d5baa3569d77d4833ceeea6f54fcdb6ad4ce18f7/xargsd-0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e090d33b28d713123233b58408cc50a3", "sha256": "682085ec9636c2dd617b8ec7aab71b522c7f8de1822e040cbf83575e3372fb60" }, "downloads": -1, "filename": "xargsd-0.1.tar.gz", "has_sig": false, "md5_digest": "e090d33b28d713123233b58408cc50a3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3177, "upload_time": "2019-07-22T01:09:22", "url": "https://files.pythonhosted.org/packages/e9/12/a31907c294152743cc78e0fc9524af5bb9749ce1339fcbd3c58f07c2d18a/xargsd-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "874c65016aa730e593f9ae379f31bab0", "sha256": "c255264d9f26f8dd5d144b65a8d141ba235331bebee712b0806a139938b3664d" }, "downloads": -1, "filename": "xargsd-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "874c65016aa730e593f9ae379f31bab0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2325, "upload_time": "2019-07-22T01:13:44", "url": "https://files.pythonhosted.org/packages/80/6e/cdf1ff604851af0544a4728ca188e263217fd6dfed5586fc15998cc0f7e1/xargsd-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7116992d0d8bb112b3cab5b58a12e4f", "sha256": "c89cc3608e59b1e0a9de25694cda579f4822f4985c4c6d8ef22bdad83ea498e2" }, "downloads": -1, "filename": "xargsd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "f7116992d0d8bb112b3cab5b58a12e4f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3262, "upload_time": "2019-07-22T01:13:46", "url": "https://files.pythonhosted.org/packages/f0/b6/70fe2c84356bec5e46826c2518c67c59c127a4f48382982b151d5809604f/xargsd-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "33c750edece142345b0a4b6d74b36291", "sha256": "8deff5195d9fd56c6a034268b7b3d53b75de056df39cc15dcbb27c38f82d7c79" }, "downloads": -1, "filename": "xargsd-0.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "33c750edece142345b0a4b6d74b36291", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2296, "upload_time": "2019-07-22T01:25:15", "url": "https://files.pythonhosted.org/packages/98/da/357edd2789ba357f35b9fa74d776057f8ed4fd50a55444688bdd79308fd6/xargsd-0.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6651bdf7cb29229347c3daadaf8dbe24", "sha256": "efd863c9b8b9479dd61b8e09daa1e1c5fb853325ca4c5963b9e71c78836af70b" }, "downloads": -1, "filename": "xargsd-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6651bdf7cb29229347c3daadaf8dbe24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3161, "upload_time": "2019-07-22T01:25:16", "url": "https://files.pythonhosted.org/packages/37/c2/f33a28ed29da91a9a6825172e0f581e2f3edd31e1f5e2d95fd0fa4903fc9/xargsd-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4d25a19a2cb02ae4c6cd09c9e073035c", "sha256": "05c3232103b9c2560ea3f1cf2bc81641999477c30ba9e3f07127a4747e1e3ad5" }, "downloads": -1, "filename": "xargsd-0.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4d25a19a2cb02ae4c6cd09c9e073035c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2295, "upload_time": "2019-07-22T01:29:20", "url": "https://files.pythonhosted.org/packages/dc/73/51213c1ca9c72577b33b1202523fc73116e69a1fd5b771c1bd8eceb1664d/xargsd-0.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3812ef1ac1891c3b3f38bb8e33b16a43", "sha256": "4da8a2efa2a48a30925ed1c47ee0cd4ad85d8f2e10885337f042b35cec3d4a36" }, "downloads": -1, "filename": "xargsd-0.1.3.tar.gz", "has_sig": false, "md5_digest": "3812ef1ac1891c3b3f38bb8e33b16a43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3163, "upload_time": "2019-07-22T01:29:21", "url": "https://files.pythonhosted.org/packages/3c/b2/b7a487fb192a471ae5eaff2993194ed179a64cb087440862cc54a2b25a05/xargsd-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "c45ce65ed3268750bbc8b5479da1bfd9", "sha256": "6fe30caab3f85a711ba588e7c3afc2299bf23ed081bdbe22897e6f75063032f2" }, "downloads": -1, "filename": "xargsd-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "c45ce65ed3268750bbc8b5479da1bfd9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2292, "upload_time": "2019-09-16T02:36:05", "url": "https://files.pythonhosted.org/packages/96/1c/0691fd9e7528f8a406809e13bbad3ad1520c3525a92c0aa25ee587d7ac41/xargsd-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed832fc11e2a139d7c42490402465480", "sha256": "28d49e573c157c1b581e8d00cf46c5c0d1d93dd8228dbe4f76cf4617e7e3562e" }, "downloads": -1, "filename": "xargsd-0.1.4.tar.gz", "has_sig": false, "md5_digest": "ed832fc11e2a139d7c42490402465480", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3137, "upload_time": "2019-09-16T02:36:07", "url": "https://files.pythonhosted.org/packages/32/1c/c4486fde9aeea4ac258e6bda7346697739452bcac086d0bb5459a3f120b0/xargsd-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "3161e2bd4d2d48c926341022589c7016", "sha256": "ddde74ec5126e817631ac1fb021228224211d7388e711a9be40a951846d7da10" }, "downloads": -1, "filename": "xargsd-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "3161e2bd4d2d48c926341022589c7016", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2292, "upload_time": "2019-09-16T02:49:18", "url": "https://files.pythonhosted.org/packages/51/25/228bcf60df7fa13ae2389d6e38f2c03c517171767f00394270b6951fa7d0/xargsd-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14c9fec54f9ef10de27e78f567eb0908", "sha256": "a2a59219d68b91613583ff6fb2808380bff114e4d60a6796a1e75d3d7d73f4d7" }, "downloads": -1, "filename": "xargsd-0.1.5.tar.gz", "has_sig": false, "md5_digest": "14c9fec54f9ef10de27e78f567eb0908", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3139, "upload_time": "2019-09-16T02:49:19", "url": "https://files.pythonhosted.org/packages/99/66/ffdacff277e40ea2255b356f72a0608441b0f608270806d351ab2f694029/xargsd-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "9a17019b984209497ec8228194347261", "sha256": "0c0f6a2e29d974ca552caaeceb215e5e318df114fd9c5e3e73f3e9fd7fec2ce0" }, "downloads": -1, "filename": "xargsd-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9a17019b984209497ec8228194347261", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2291, "upload_time": "2019-09-16T03:29:27", "url": "https://files.pythonhosted.org/packages/e3/fe/55ecda5714621123a738110a9acfdc6a9154adc607e7fe640fb5091eff03/xargsd-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c814c5e5f6a7979ed7f2d2ee5e46b280", "sha256": "4543863fa4011e502f8ee3adf3f9118f4d7414d868b0a0e9026d47d1fac0ce62" }, "downloads": -1, "filename": "xargsd-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c814c5e5f6a7979ed7f2d2ee5e46b280", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3554, "upload_time": "2019-09-16T03:29:28", "url": "https://files.pythonhosted.org/packages/ac/88/29f05a3948ad5e972ea0f84b5ac8c6d964d399bb95684933b5fb234b3831/xargsd-0.1.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a17019b984209497ec8228194347261", "sha256": "0c0f6a2e29d974ca552caaeceb215e5e318df114fd9c5e3e73f3e9fd7fec2ce0" }, "downloads": -1, "filename": "xargsd-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9a17019b984209497ec8228194347261", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2291, "upload_time": "2019-09-16T03:29:27", "url": "https://files.pythonhosted.org/packages/e3/fe/55ecda5714621123a738110a9acfdc6a9154adc607e7fe640fb5091eff03/xargsd-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c814c5e5f6a7979ed7f2d2ee5e46b280", "sha256": "4543863fa4011e502f8ee3adf3f9118f4d7414d868b0a0e9026d47d1fac0ce62" }, "downloads": -1, "filename": "xargsd-0.1.6.tar.gz", "has_sig": false, "md5_digest": "c814c5e5f6a7979ed7f2d2ee5e46b280", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3554, "upload_time": "2019-09-16T03:29:28", "url": "https://files.pythonhosted.org/packages/ac/88/29f05a3948ad5e972ea0f84b5ac8c6d964d399bb95684933b5fb234b3831/xargsd-0.1.6.tar.gz" } ] }