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

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.6
File Size Uploaded Provenance
xargsd-0.1.6.tar.gz 3.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for xargsd 0.1.6
File Interpreter ABI Platform
xargsd-0.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 5.8 kB

Release files / xargsd-0.1.6.tar.gz

Download URL xargsd-0.1.6.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
4543863fa4011e502f8ee3adf3f9118f4d7414d868b0a0e9026d47d1fac0ce62
BLAKE2b-256 checksum
How to use checksums
ac8829f05a3948ad5e972ea0f84b5ac8c6d964d399bb95684933b5fb234b3831
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.6-py3-none-any.whl

Download URL xargsd-0.1.6-py3-none-any.whl
Size 2.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0c0f6a2e29d974ca552caaeceb215e5e318df114fd9c5e3e73f3e9fd7fec2ce0
BLAKE2b-256 checksum
How to use checksums
e3fe55ecda5714621123a738110a9acfdc6a9154adc607e7fe640fb5091eff03
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.6

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