Skip to main content

Like xargs, but accepts arguments from arbitrary processes, and executes eagerly as long as there are arguments available.

That 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.

Examples

  • A toy example, demonstrating the very basic functionality:

    $ python -m xargsd --socket-file temp.sock -vvv -- echo &
    [1] 14917
    $ submit() { python -m xargsd.client --socket-file temp.sock -- "$@"; }
    $ submit a
    INFO:root:executing ['echo', 'a']
    a
    $ submit b c d
    INFO:root:executing ['echo', 'b', 'c', 'd']
    b c d
    

    (Note that the INFO: lines and the following ones are printed by xargsd, not the client.)

  • A slightly-less-toy example, which demonstrates how commands are batched up while a previous command is executing:

    $ echo 'date; sleep "$@"' > date-and-sleep.sh
    $ python -m xargsd --socket-file temp.sock -vvv -- bash date-and-sleep.sh &
    [4] 15714
    $ submit() { echo "submitting $@"; python -m xargsd.client --socket-file temp.sock -- "$@"; }
    $ submit 1; sleep 0.1; submit 0.99; sleep 0.1; submit 1.01; sleep 3
    submitting 1
    INFO:root:executing ['bash', 'date-and-sleep.sh', '1']
    Sun May 12 09:53:13 PDT 2019
    submitting 0.99
    submitting 1.01
    DEBUG:root:finished executing ['bash', 'date-and-sleep.sh', '1']: status 0
    INFO:root:executing ['bash', 'date-and-sleep.sh', '0.99', '1.01']
    Sun May 12 09:53:14 PDT 2019
    DEBUG:root:finished executing ['bash', 'date-and-sleep.sh', '0.99', '1.01']: status 0
    
  • A completely serious example, using watchman to run xargsd.client whenever a file (whose name matches some pattern) changes:

    $ watchman watch .
    $ watchman -- trigger . pytest -p '.*\.py$' -X -p '(^|.*/)\.' -- bash -c 'python -m xargsd.client --socket-file .xargsd-pytest.sock -- .'
    $ python -m xargsd --unique --socket-file .xargsd-pytest.sock -vvv -- pytest --color=yes
    

    Then save a .py file and watch the daemon execute pytest .

Metadata

Release files for xargsd 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xargsd 0.1.3
File Size Uploaded Provenance Actions
xargsd-0.1.3.tar.gz 3.2 kB Without provenance Details for xargsd-0.1.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for xargsd 0.1.3
File Interpreter ABI Platform Actions
xargsd-0.1.3-py2.py3-none-any.whl Python 2, Python 3 none any Details for xargsd-0.1.3-py2.py3-none-any.whl

Total release size: 5.5 kB

Release files / xargsd-0.1.3.tar.gz

Download URL xargsd-0.1.3.tar.gz
Size 3.2 kB
Tags Source
SHA-256 checksum
How to use checksums
4da8a2efa2a48a30925ed1c47ee0cd4ad85d8f2e10885337f042b35cec3d4a36
BLAKE2b-256 checksum
How to use checksums
3cb2b7a487fb192a471ae5eaff2993194ed179a64cb087440862cc54a2b25a05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1

Release files / xargsd-0.1.3-py2.py3-none-any.whl

Download URL xargsd-0.1.3-py2.py3-none-any.whl
Size 2.3 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
05c3232103b9c2560ea3f1cf2bc81641999477c30ba9e3f07127a4747e1e3ad5
BLAKE2b-256 checksum
How to use checksums
dc7351213c1ca9c72577b33b1202523fc73116e69a1fd5b771c1bd8eceb1664d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.1

Security for xargsd 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page