Skip to main content

async clone of subprocess.run

Project description

See the documentation of the main function:

async def run(
    args: Sequence[StrBytes],
    cwd: Optional[Path] = None,
    env: Optional[Union[Mapping[StrBytes, StrBytes]]] = None,
    env_override: Optional[Mapping[StrBytes, StrBytes]] = None,
    capture_output: bool = False,
    check: bool = False,
    text: Optional[bool] = None,
) -> subprocess.CompletedProcess:
    """An async clone of `subprocess.run`.

    Suppose you have Python script that orchestrates shell commands,
    but it's too slow, and you've identified commands which can run in
    parallel. You could use `threading`, but that has GIL problems, or
    `multiprocess`, which has a high startup-cost per worker. You are
    already spinning off subprocesses, which the OS will run
    concurrently, so why not use async/await programming to express
    concurrency in a single thread?

    Note this function does not permit you to communicate
    asynchronously, just to run commands asynchronously.

    This function supports a subset of the signature of
    `subprocess.run`, that I will expand based on need. If you need
    some functionality, submit an issue or PR.

    """

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

charmonium.async_subprocess-0.1.7.tar.gz (3.2 kB view hashes)

Uploaded Source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page