Contents

This is the contents of a file to which the CLI’s help command is redirected as of asyncutils v0.9.7.

Command used:

python3 -m asyncutils -h > help.out

Note

Generated by scripts/genhelp.ps1 at 2026-05-20 11:02:03.

usage: asyncutils [-l [FILE] | -n] [-e ETYP | -c ETYP | --thread | --process |
                  --interpreter | --loky | --loky-noreuse | --dask |
                  --ipython | --elib-flux-cluster | --elib-flux-job |
                  --elib-slurm-cluster | --elib-slurm-job |
                  --elib-single-node | --pebble-thread | --pebble-process |
                  --deadpool] [-Q] [-V] [-q] [-b] [-m M] [-p] [-s SEED] [-d]
                  [-P] [-v] [-?]

A versatile, feature-rich library of async tools integrated into the asyncio framework, aiming to make asynchronous programming easier for everyone.
Has CLI and colored REPL support for quick development.
On both conda and pip as py-asyncutils.

options:
  -l, --log-to [FILE]   This module uses a logger, so that post-mortem debugging can be done by inspecting the log file created.
                        When FILE, interpreted as a file descriptor if an integer, is passed, the logging output goes to a file with that name.
                        Passing 'NULL' for FILE is equivalent to specifying the --no-log option.
                        If FILE is 'MEMORY', logs are stored in memory and returned and voided whenever get_past_logs is called.
                        If FILE is 'MAKE' or no filename is passed but the option specified, an attempt is made to create a file of format 'asyncutils_log<number>.log' in the
                        current working directory for logging, for number from 1 to 4096. If you have more than 4096 log files, you should probably clean them up.
                        Log file rotation is not currently supported.
                        If FILE is 'STDOUT', log to stdout.
                        If FILE is 'STDERR', log to stderr. This is also the default behaviour and fallback if the above steps fail.
  -n, --no-log          Disable logging completely.
                        A disabled logger is still created to make subsequent logging.getLogger calls return it.
                        Thus, this option cannot avoid the cost of importing logging and instantiating the logger early on.
  -e, --executor ETYP   Choose an executor class to use when necessary depending on the value of ETYP as follows:
                        thread: Use concurrent.futures.thread.ThreadPoolExecutor. This is the default and will be used if the third-party options are passed but not installed.
                        The below options are experimental.
                        process: Use concurrent.futures.process.ProcessPoolExecutor. Use with care, since this depends on CPU architecture.
                        interpreter: Use concurrent.futures.interpreter.InterpreterPoolExecutor. May throw various errors relating to unshareable objects.
                        The below options are third-party.
                        loky_noreuse: Use a new loky.process_executor.ProcessPoolExecutor every time.
                        loky: Reuse a loky.process_executor.ProcessPoolExecutor if possible.
                        dask: Use dask.distributed.Client, the API of which just so happens to be a superset of those of concurrent.futures executors.
                        ipython: Use ipyparallel.ViewExecutor.
                        elib_flux_cluster: Use executorlib.executor.flux.FluxClusterExecutor.
                        elib_flux_job: Use executorlib.executor.flux.FluxJobExecutor.
                        elib_slurm_cluster: Use executorlib.executor.slurm.SlurmClusterExecutor.
                        elib_slurm_job: Use executorlib.executor.slurm.SlurmJobExecutor.
                        elib_single_node: Use executorlib.executor.single.SingleNodeExecutor.
                        pebble_thread: Use pebble.pool.thread.ThreadPool.
                        pebble_process: Use pebble.pool.process.ProcessPool.
                        deadpool: Use deadpool.Deadpool.
                        Note: The executorlib project is Python <3.14 only, and the executors extra may not work on higher python versions, causing installation of the all
                        extra to also fail.
                        There are some implementations from niche libraries (found on a PyPI-wide search using the keyword "executor") that are intentionally excluded, since
                        they either require prior configuration to be useful (as is the case with adaptive-executor), are too small (contextvars-executor), unmaintained
                        (celery-executor), too little-known (sequential-executor), rely on possibly outdated implementation details (bounded-pool-executor), have specific
                        backends seldom used for this purpose (Flask-Executor) or have completely incompatible APIs (thread-executor). In those cases, pass the fully qualified
                        name to -c and bear the potential consequences.
  -c, --custom-executor ETYP
                        Use a custom executor not included in the above options by specifying the name of an implementation.
                        Passing "package.submodule.Implementation", for example, will execute "from package.submodule import Implementation as Executor".
  --thread              Equivalent to "-e thread".
  --process             Equivalent to "-e process".
  --interpreter         Equivalent to "-e interpreter".
  --loky                Equivalent to "-e loky".
  --loky-noreuse        Equivalent to "-e loky_noreuse".
  --dask                Equivalent to "-e dask".
  --ipython             Equivalent to "-e ipython".
  --elib-flux-cluster   Equivalent to "-e elib_flux_cluster".
  --elib-flux-job       Equivalent to "-e elib_flux_job".
  --elib-slurm-cluster  Equivalent to "-e elib_slurm_cluster".
  --elib-slurm-job      Equivalent to "-e elib_slurm_job".
  --elib-single-node    Equivalent to "-e elib_single_node".
  --pebble-thread       Equivalent to "-e pebble_thread".
  --pebble-process      Equivalent to "-e pebble_process".
  --deadpool            Equivalent to "-e deadpool".

verbosity:
  Adjust the amount of output of this program.

  -Q                    Produce less logging output. Additive.
  -V                    Produce more logging output. Additive.

repl:
  Configure the behaviour of the Read-Eval-Print Loop of this module.

  -q, --quiet           Do not display the banner and exit message in the REPL; the -q flag can be passed to the python command directly to achieve the same effect.
  -b, --basic-repl      Do not use the console with colors and enhanced functionality from _pyrepl. Use only if you have experienced a bug with the colored console.
  -m, --max-memerrs M   The REPL will exit on the M+1-th MemoryError to prevent consuming too many computer resources.
                        M defaults to 3.
                        Set to a negative value to disable the threshold completely.

testing:
  Options to more conveniently test this module.

  -p, --load-all        Preload all submodules of this module. Useful for testing, but incurs noticeable performance penalty.
  -s, --seed SEED       Seed the random instance used internally by this module with SEED, which will be interpreted as an integer if possible.
  -d, --debug           Enable debug mode to produce more logging output by entering the global debug context manager. Different from -VV, since
                        the verbosity flags take effect again when the context manager is manually exited.
  -P, --pdb             Intended for developers of this library only; open the pdb debugger interface when the exit code of the console is greater than zero,
                        or an uncaught error occurs in the console execution logic itself.

metadata:
  Get basic information about this installation of asyncutils.

  -v, --version         Print the current version number of asyncutils, in the form as specified by __version__.representation, and exit.
                        Useful for checking if the installation succeeded.
  -?, -h, --help        Print this help message and exit.

Use @<filename> to insert command-line arguments from the file of that name at the exact position of this parameter.
The file should have one argument per line; this format differs from that described below.

Use the AUTILSCFGPATH environment variable to specify a path to a file of a supported type containing the default configuration.
A --config option is not offered due to the complexity of implementation and ease to revert to a default config within a one-off config.
See the possible keys in format.json5, which can be accessed using tools.get_cfg_json_format().

Note that the inner workings of this library is tightly coupled with the ever-evolving asyncio framework.
As such, it is probably incompatible with full-fledged third-party async frameworks such as curio, anyio, trio, and tornado.